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.