I need to create a common DataGridTemplateColumn
, so that I can use it across my application with different objects and properties.
here is some sample code, I use in my project
<DataGridTemplateColumn Width="100*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Age}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Age}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
I need a generic version of the code so that I can place the DataTemplate
in app.xaml
and reference it in my code
You can't template DataGridTemplateColumn
directly. But fortunately you can use global templates for cells. Take a look at example:
App.xaml
<Application.Resources>
<DataTemplate x:Key="CellEdintingTemplate">
<TextBox Text="{Binding Path=Age}" />
</DataTemplate>
<DataTemplate x:Key="CellTemplate">
<TextBlock Text="{Binding Path=Age}" />
</DataTemplate>
</Application.Resources>
Using
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn
CellEditingTemplate="{StaticResource CellEdintingTemplate}"
CellTemplate="{StaticResource CellTemplate}" />
</DataGrid.Columns>
</DataGrid>
来源:https://stackoverflow.com/questions/10361122/create-common-datagridtemplatecolumn-in-wpf