I have the following DataTemplate
for displaying the full name of a User
instance:
<DataTemplate x:Key="NameCellTemplate">
<Label HorizontalAlignment="Stretch" Height="25">
<Label.Content>
<MultiBinding
Converter="{StaticResource FullNameConverter}"
ConverterParameter="{x:Static Conv:NameFormat.FirstThenLast}" >
<!-- Requires binding to object of type 'User' -->
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</Label.Content>
</Label>
</DataTemplate>
I currently use it to customize a template column, like so:
<DataGridTemplateColumn
CellTemplate="{StaticResource NameCellTemplate}" />
This column belongs to a data grid full of User
instances, but I would like to re-use the data template for a column in a different data grid. This second data grid binds to a different type, which instead keeps User
as a property, so I'd like to do this:
<DataGridTemplateColumn
Binding="{Binding Path=User}"
CellTemplate="{StaticResource NameCellTemplate}" />
However, the Binding
attribute isn't permitted for a template column.
How can I specify a binding path for the column template, or modify the data template, such that the data template can be reused for either data grid?
In this case as the datacontexts of datagrid row are different so you can apply the template like this: