我正在生成一个自定义控件,它使用GridViewRowPresenter的方式与ListView的方式类似- 绑定到我的控件上的ViewBaseColumns
类型的属性集合:View
<GridViewRowPresenter Content="{Binding Content}"
Columns="{Binding Path=View.Columns, RelativeSource={RelativeSource AncestorType={x:Type local:MyControlType}}}" />
这意味着控件的用户可以使用熟悉的GridView
样式语法指定列,例如:
<MyControlType><MyControlType.View><GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Address" CellTemplate="{StaticResource MyCellTemplate}" />
</GridView></MyControlType.View></MyControlType>
这很好用,但是我的控件(MyControlType
)需要能够“覆盖”网格中列的单元格模板,以便它们包含一些额外的内容。
如何在对控件用户需要编写的语法进行最小更改的情况下做到这一点?