我需要使用自定义 CellTemplate 创建一个可重用的 DataGrid 列。除其他外,此 CellTemplate 应包含一个 TextBlock 控件,我需要将值绑定到该控件以在 DataGrid 中显示。到目前为止,我看到的所有示例在 DataGrid 的 Columns 属性中使用列时直接为列指定了 CellTemplate,并且还直接指定了到 TextBlock 的绑定,例如:
<data:DataGrid>
<data:DataGrid.Columns>
<data:DataGridTemplateColumn Header="Name">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
我需要将此列封装到一个单一的、可重用的控件中,并且我想为它指定一个绑定,就像为一个普通的 DataGridTextColumn 一样。换句话说,当使用这个自定义列时,我只想写这样的东西:
<data:DataGrid>
<data:DataGrid.Columns>
<controls:CustomColumn Header="Name" Binding="{Binding Name}" />
</data:DataGrid.Columns>
</data:DataGrid>
问题是我的自定义列继承自的 DataGridTemplateColumn 没有 Binding 属性。我以为我可以使用 DataGridBoundColumn,但无法为其指定 CellTemplate。
如何实现期望的行为?谢谢!