2013-09-26 3 views
0

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

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

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 
+0

Ваше изображение http://rental.joshblease.co .uk/propertyimages/image1.jpg вызывает ошибку 404, когда я навещаю ее. – alstonp

+0

@alstonp Мне известно об этом, имя изображения было упрощено для этого случая –

ответ

0

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

Кроме того, имейте в виду, что самый простой способ показан в this answer не будет работать для вас, так как URIs are not supported by the BitMap class.

1

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

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