私はWPFが初めてで、dataGrid
. 表示しようとしているデータの一部は画像です。最初に、次のようにデータをバインドしようとしました:
DataGrid.ItemsSource = <some collection>
これにより、画像が表示されず、画像へのパスを含む列が作成されました。
私はグーグルで検索を開始し、次のことを思いつきました:
データ テンプレートを作成しました:
<DataTemplate x:Key="ImageDataTemplate">
<Image Source="{Binding Image}"/>
</DataTemplate>
イベントに関数を追加し、AutoGeneratingColumn
そこに次のコードを配置しました。
if (typeof(System.Windows.Media.ImageSource).IsAssignableFrom(e.PropertyType))
{
DataGridTemplateColumn dgtc = new DataGridTemplateColumn();
dgtc.Header = e.Column.Header;
dgtc.CellTemplate = this.FindResource("ImageDataTemplate") as DataTemplate;
e.Column = dgtc;
}
クラスですべての Image プロパティを呼び出す限り、魔女はうまく機能Image
します。もう少し柔軟にする方法はありますか? (クラスにいくつかの画像が必要な場合、または画像プロパティに意味のある完全な名前が必要な場合があり、ほとんど重複したコードは好きではありません)