2009-03-24 17 views
0

私のWPFプロジェクトには、画像を表示し、それぞれの画像の隣にテキスト(例:写真の撮影日、場所など)が表示されるリストボックスがあります。 私は、一般的なリストを作成しようとしたが、私はまだリストボックスに、私は、このライン上で何かをしようとしているビットマップ画像でカスタムジェネリックリストを作成する

Bsciallyよう

何かを、それを割り当てることはできません。

public class LoadImages 
{ 
    public static List<ImageLoader> LoadImages() 
    { 
     List<ImageLoader> img = new List<ImageLoader>(); 

     Uri uri = new Uri(@"http://somedomain.com/pic.jpg", UriKind.Absolute); 
     BitmapImage bi = new BitmapImage(uri); 

     img.Add(new ImageLoader("1_1",bi)); 

     return img;    
    } 
} 

public class ImageLoader 
{ 
    string mediaid; 
    BitmapImage thumbnail; 

    public ImageLoader(string mediaid, BitmapImage b) 
    { 
     this.mediaid = mediaid; 
     this.thumbnail = b; 
    } 
} 

私のXAMLはこのように見えます。時間

 <ListBox Name="ListBox1" SelectionMode="Extended" ItemsSource="{Binding}" 
      Width="300" Height="300" IsSynchronizedWithCurrentItem="True"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <Image Source="{Binding thumbnail}"/> 
        <TextBlock Text="{Binding mediaid}"/> 
       </Grid> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

は私が
<Window.DataContext> 
    <ObjectDataProvider ObjectType="{x:Type local:LoadImages}" MethodName="LoadImages"/> 
</Window.DataContext> 

Window.DataContext

を設定しているされている。しかし、毎回私は、リストボックスが空に現れアプリを実行します。

提案があります。

答えて

0

ImageLoaderクラスでやっていたことは、mediaidとサムネイルのプロパティを作成してから、リストボックスへのバインディングがcharのように機能するようになったことです。だから今、上記の質問に尋ねにおけるImageLoaderクラスが

public class ImageLoader 
{ 
    string mediaid; 
    BitmapImage thumbnail; 

    public string MediaId 
    { 
     get { return mediaid; } 
     set { mediaid = value; } 
    } 

    public BitmapImage Thumbnail 
    { 
     get { return thumbnail; } 
     set { thumbnail = value; } 
    } 

    public ImageLoader(string mediaid, BitmapImage b) 
    { 
     this.mediaid = mediaid; 
     this.thumbnail = b; 
    } 
} 
1

画像要素は、Uris for Sourceプロパティをサポートします。なぜあなたのLoadImagesクラスをイメージの代わりにUrisのセットを返すようにするのですか?また、イメージ要素はあなたのために非同期ジョブを行うことができます;)

+0

おかげデニスのように、 が明らかに:-)に –

+0

アップデートがありませんでしたになります。私は私のクラスを変更し、文字列ではなく、画像に結合する画像要素を設定しますまだ表示されません。任意のポインタ。 –

0

サムネイルとメディアIDは公開されていないため、バインディングは失敗します。

+0

こんにちは、 私はそれをpublicに設定しようとしましたが、バインディングは失敗します。 –

関連する問題