0

データ テーブルの行にはFirstImage、Web サーバー上の画像ファイルへの 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
4

2 に答える 2

0

画像のデータバインディングはバイナリ画像データを想定しており、この場合は文字列を渡します。できることは、画像の場所をバインディングが理解できる形式に変換することです。このリンクC# Code Snippet - Download Image from URLを見てください。次に、画像をメモリに保存したら、それを PictureBox にバインドできます。

また、 BitMap クラスでは URI がサポートされていないため、この回答に示されている最も単純な方法は機能しないことに注意してください。

于 2013-09-27T04:35:06.910 に答える