包装的图像不显示在组合框中

时间:2012-12-18 15:27:10

标签: wpf image binding combobox

我使用以下问题中描述的方法来填充组合框。

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>

1 个答案:

答案 0 :(得分:1)

Image控件的Source不能是另一个Image控件。将Img媒体资源的类型更改为ImageSource

public class Wrapper
{
    ...
    public ImageSource Img { get; set; }
}