VB.Net использует привязки данных с графическим блоком

Строка в таблице данных называется FirstImage содержит URL-адрес файла изображения на веб-сервере. Я пытаюсь привязать данные этой строки к источнику изображения в графическом окне.

Мой текущий код:

For Each row As DataRow In ListData.Rows
    Dim ImageDecode = ser.Deserialize(Of PropertyImage())(row("Images"))
    row("FirstImage") = "http://rental.joshblease.co.uk/propertyimages/" & ImageDecode(0).Image
    'Returns http://rental.joshblease.co.uk/propertyimages/image1.jpg
Next row
TxtListName.DataBindings.Add("Text", ListData, "Name")
TxtListSlug.DataBindings.Add("Text", ListData, "Slug")
TxtListCreated.DataBindings.Add("Text", ListData, "Created")
ImgListItem.DataBindings.Add("Image", ListData, "FirstImage", True)
DataRepeater1.DataSource = ListData

Но на данный момент изображение все еще пустое. Я попытался ввести местоположение в скрытое текстовое поле и скопировать данные поверх него, но я не могу понять, как использовать элементы управления в повторителе данных.

Это была экспериментальная копия кода скрытого текстового поля:

If Me.DataRepeater1.ItemCount > 0 Then
    Dim n As Integer = Me.DataRepeater1.ItemCount
    For i As Integer = 1 To n
        Me.DataRepeater1.CurrentItemIndex = i - 1
        Dim item = Me.DataRepeater1.CurrentItem
        item.Controls("ImgListItem").ImageLocation = item.Controls("TxtImageLocation").Text
    Next
End If

2 ответа

Просто добавьте Picture Box свойство ImageLocation

ImgListItem.DataBindings.Add("ImageLocation", ListData, "FirstImage", True)

Привязка данных для изображения ожидает двоичные данные изображения, и в этом случае вы передаете ему строку. Что мы можем сделать - это преобразовать местоположение изображения в формат, понятный привязке. Взгляните на эту ссылку C# Code Snippet - Скачать изображение с URL. Затем, когда у вас есть изображение в памяти, вы сможете привязать его к вашему PictureBox.

Кроме того, имейте в виду, что самый простой способ, показанный в этом ответе, не будет работать для вас, так как URI не поддерживаются классом BitMap.

Другие вопросы по тегам