次の質問で説明されている方法を使用して、コンボ ボックスに入力しました。
ComboBox ItemTemplate はタイプ 'Image' の値をサポートしていません
ComboBox には、Image といくつかのデータを含むラッパー クラスのインスタンスが取り込まれます。ただし、その質問の投稿者が述べたように、画像はコンボボックスに表示されませんが、空白のエントリのいずれかを選択すると、データが正しくバインドされます。
モデル ビューは外部データ ソースと対話するため、データはモデル ビューにバインドされますが、画像は UI 固有であるため、ユーザー コントロールのコードにバインドされます。
画像を表示するにはどうすればよいですか?
コード:
public ObservableCollection<Wrapper> Images { get; set; }
public Class Wrapper
{
public Wrapper(int data, Image img)
{
Data = data;
Img = img;
}
public int Data { get; set; }
public Image Img { get; set; }
}
int selectedData;
public int SelectedData
{
get { return selectedData; }
set
{
selectedData = value;
(this.Resources["model"] as MyModel).External = Images[selectedData].Data;
SendPropertyChanged("SelectedData");
}
}
xaml:
<ComboBox ItemsSource="{Binding Images}" SelectedIndex="{Binding SelectedData}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Img}" Height="83" Width="71"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>