使用哪个WPF模板?

时间:2015-03-30 21:48:09

标签: wpf listview datatemplate controltemplate contenttemplate

我想创建一个可重复使用的ListView,其中包含任意或全部行:

标签+文本框 要么 标签+组合框 要么 标签+ DatePickers

使用模板。我仍然不太了解模板,并且想知道它们中的哪一个 - ControlTemplate,DataTemplate,ItemsTemplate或ContentTemplate - 用于此以及如何使用。谢谢!

1 个答案:

答案 0 :(得分:2)

有两种不同类型的模板:DataTemplateControlTemplateControlTemplate用于从Template派生的类的Control属性,并为特定类型的控件定义可视树。

模板显示的几乎所有其他地方都在使用DataTemplate。其中包括ContentTemplateItemTemplate属性。 DataTemplates为任何非Visual数据类型定义可视树。呈现模板时,DataContext是正在呈现的数据对象(即List<T>项),可以轻松绑定数据属性。

要在单个列表中混合使用不同类型的模板,您可以使用DataTemplateSelector,它允许您编写代码来为每个项目选择模板。另一个选项是为列表中的不同CLR类型的对象创建多个隐式模板(DataType但不包含x:Key)。只要这些模板位于控件的资源范围内,呈现集合,类型就会自动解析其模板。