0

私はSQLiteを使用しており、フィールドを持つテーブルを含むテーブルがあります:idそしてname

私のプロジェクトには、graphics/pictures フォルダーがあり、そこで私の写真は 1.png、2.png などのように名前が付けられています。

すべてのレコードを ObservableCollection に保存し、これをソースとして ListBox に設定します。

テーブルのIDとフォルダ内の写真の名前に基づいて、その写真をリストの各アイテムにバインドする機会はありますか?

私はちょっと試してみましSource="graphic/pictures/{Binding id}.pngたが、それは悪い方法のようです。

4

2 に答える 2

1

それが機能するかどうかはわかりませんが(今すぐ試すことはできません)、StringFormat(http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat.aspx)を使用できますまたはフル パスを返すコンバーター ( http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converter.aspx )

于 2012-06-29T09:20:42.650 に答える
0

画像を文字列としてクラスを作成してみてください

      public class Img
       {
        public string thumb { get; set; }
       }

コード内:

   for (i = 0; i < observablecollection.Length; i++)
    {
    Img sqlimage = new Img()
    {
    thumb = "/PhoneApp1;component/images/" + observablecollection[i].Id + ".jpg"
    };

    listbox1.Items.Add(sqlimage);
    }


  <ListBox  Name="listBox1" Width="Auto" HorizontalAlignment="Left" ItemsSource="{Binding Img}" DataContext="{Binding}"  HorizontalContentAlignment="Left" VerticalContentAlignment="Stretch" >
      <ListBox.ItemTemplate>
          <DataTemplate>
<StackPanel Name="ContentGrid" Grid.Row="0" Height="Auto" Orientation="Vertical" Width="Auto">
   <Image Height="165" HorizontalAlignment="Left" VerticalAlignment="Top" Width="175" Source="{Binding thumb}"/>
</StackPanel>
  </DataTemplate>
     </ListBox.ItemTemplate>
       </ListBox>
于 2012-06-29T09:34:58.707 に答える