私はコレクションを持っています private ObservableCollection<ImageData> imageDataList = new ObservableCollection<ImageData>();
ここでImageDataはカスタムオブジェクトです。 fileName
という属性があり、イメージファイルのフルパスを格納する文字列です。私のXAMLコードでは、次のようにdatatemplateを持つリストボックスがあります。WPFのカスタムオブジェクトの属性にデータテンプレートをバインドします
<ListBox Name="listBox_ImageList" Grid.ColumnSpan="3" Grid.Row="2" SelectionChanged="listBox_ImageList_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding fileName}" Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ListBox, AncestorLevel=1}, Path=ActualHeight}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
imageDataList
にImagaData
オブジェクトを移入した後、私はそれを実行したとき、私はすべての画像が表示されない、しかしthis.listBox_ImageList.ItemsSource = imageDataList;
を設定します。 WPFイメージソースへのオブジェクトの文字列メンバーに正しくデータバインドする方法を教えてください。 DataContextのを設定し
あなたに_anything_が表示されますか?あなたがListBox.ItemTemplateのコードをコメントアウトするとどうなるでしょうか([ImagaData.ToString()])) –