我使用以下问题中描述的方法来填充组合框。
ComboBox ItemTemplate does not support values of type '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>
答案 0 :(得分:1)
Image控件的Source不能是另一个Image控件。将Img
媒体资源的类型更改为ImageSource:
public class Wrapper
{
...
public ImageSource Img { get; set; }
}