2009-09-03 12 views
3

(OpenIDを使ってどのくらいの時間がかかりましたか?私はプロバイダーに接続していないようで、OpenIDを失ったときに何をすべきか教えてくれないようです。WPFリストボックスデータベースからの画像

データベースから(カルーセル)リストボックスを埋めようとしていますが、表示する画像を取得できません。

public class PicCollection : ObservableCollection<CarouselItem> 
{ 
    public PicCollection() 
    { 

    } 
} 
public class CarouselItem 
{ 
    public int ItemID { get; set; } 
    public string ItemName { get; set; } 
    public string ItemDesc { get; set; } 
    public Image ItemImage { get; set; } 

    public CarouselItem(int NewItemID, string NewItemName, string NewItemDesc, Image newItemImage) 
    { 
     this.ItemID = NewItemID; 
     this.ItemName = NewItemName; 
     this.ItemDesc = NewItemDesc; 
     this.ItemImage = newItemImage; 
    } 
} 

私はバイトを使用して(デシベルから首尾PicCollectionを埋める:ネット上のすべての単一の例では、

マイアイテムクラスがある:(フォルダ内の代わりに、メモリ内に二、三JPEGファイルを持っていると仮定し

<ListBox Name="lstTest" ItemsSource="{StaticResource TestDataSource}" 
       ItemTemplate="{StaticResource TestDataTemplate2}"></ListBox> 
:リストボックスは、単にある

<DataTemplate x:Key="TestDataTemplate2" > 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock x:Name="CarName" 
          Text="{Binding ItemName}" 
          Padding="15,15" 
          Foreground="Yellow" /> 
      <Image Source="{Binding Source=ItemImage}" 
        Stretch="Fill" /> 
      </StackPanel> 
    </DataTemplate> 

で名前や画像を表示する画像の配列)、および試します

ItemNameはOK、ItemImageは表示されません。私は{Binding ItemImage}も試しました。ほとんどの例では{Binding Path=ItemImage}を使用していますが、これはItemImageがパスを含む文字列であり、実際のイメージ自体ではありません。

私は私の髪を引っ張っています。私がしていることはイメージを表示させるものではありません。しかし、イメージコントロールを作成してItemImageの内容を手動で割り当てると、うまく表示されます。私は間違って何をしていますか?

答えて

3

あなたItemImageプロパティは、Image(コントロール)です。それをSystem.Windows.Media.Imaging.BitmapImageなどのImageSourceにします。次に、<Image Source="{Binding ItemImage}" />をバインドすることができます。

+0

duh!もちろん!それは、完全に理解しようとせずに例をコピーして貼り付けることを教えてくれるでしょう。ありがとう。 – SteveCav

0

あなたの「ItemImage」プロパティが既に画像であるので、あなただけの直接画像を表示するContentControlにを使用して逃げることができるかもしれませんが:

<ContentControl Content="{Binding Image}" /> 
関連する問題