Xamlでは、データテンプレートを作成するときに、DataTemplateが適用されるアイテムのタイプを次のように指定できます。
<DataTemplate DataType="{x:Type Vehicle}">
<!-- do some stuff with the Vehicle class's properties -->
</DataTemplate>
DataGridを作成するときに同じことを実行できるようにしたいのですが、DataType属性のオプションではありません。
<DataGrid ItemsSource="{Binding Cars}" DataType="{x:Type Vehicle}">
<!-- Create columns that bind to the Vehicle class's properties -->
</DataGrid>
かなりくだらない回避策は、各列で個別に行うことです。
<DataGrid ItemsSource="{Binding Cars}" DataType="{x:Type Vehicle}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header />
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="{x:Type Vehicle}">
<!-- bind to a Vehicle class property -->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header />
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="{x:Type Vehicle}">
<!-- bind to a Vehicle class property -->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header />
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="{x:Type Vehicle}">
<!-- bind to a Vehicle class property -->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
私が知らないこれを行うためのより良い方法はありますか?そうしないと、ReSharperのさまざまな部分がうまく対応できません。