在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的各种功能将不能很好地工作。