0

次の質問で説明されている方法を使用して、コンボ ボックスに入力しました。

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>
4

1 に答える 1

1

画像コントロールのソースを別の画像コントロールにすることはできません。ImgプロパティのタイプをImageSourceに変更します:

public class Wrapper
{
    ...
    public ImageSource Img { get; set; }
}
于 2012-12-18T15:37:38.100 に答える