使用哪个 WPF 模板?
Which WPF template to use?
我想创建一个可重复使用的 ListView,其中包含以下任何或所有行:
标签 + 文本框
要么
标签+组合框
要么
标签 + 日期选择器
使用模板。我仍然不太了解模板,想知道使用其中的哪些 - ControlTemplate、DataTemplate、ItemsTemplate 或 ContentTemplate - 以及如何使用。谢谢!
有 2 种不同类型的模板:DataTemplate
和 ControlTemplate
。 ControlTemplate
用于派生自 Control
的 类 的 Template
属性,并为特定类型的控件定义可视化树。
模板显示的几乎所有其他地方都在使用 DataTemplate
。这包括 ContentTemplate
和 ItemTemplate
属性。 DataTemplates
为任何非可视化数据类型定义可视化树。呈现模板时,其 DataContext
是正在呈现的数据对象(即 List<T>
项),因此可以轻松绑定数据属性。
要在单个列表中混合使用不同类型的模板,您可以使用 DataTemplateSelector
,它允许您编写代码来为每个项目选择一个模板。另一个选项是为列表中不同的 CLR 对象类型创建多个隐式模板(DataType
但没有 x:Key
)。只要这些模板在呈现集合的控件的资源范围内,类型就会自动解析它们的模板。
我想创建一个可重复使用的 ListView,其中包含以下任何或所有行:
标签 + 文本框 要么 标签+组合框 要么 标签 + 日期选择器
使用模板。我仍然不太了解模板,想知道使用其中的哪些 - ControlTemplate、DataTemplate、ItemsTemplate 或 ContentTemplate - 以及如何使用。谢谢!
有 2 种不同类型的模板:DataTemplate
和 ControlTemplate
。 ControlTemplate
用于派生自 Control
的 类 的 Template
属性,并为特定类型的控件定义可视化树。
模板显示的几乎所有其他地方都在使用 DataTemplate
。这包括 ContentTemplate
和 ItemTemplate
属性。 DataTemplates
为任何非可视化数据类型定义可视化树。呈现模板时,其 DataContext
是正在呈现的数据对象(即 List<T>
项),因此可以轻松绑定数据属性。
要在单个列表中混合使用不同类型的模板,您可以使用 DataTemplateSelector
,它允许您编写代码来为每个项目选择一个模板。另一个选项是为列表中不同的 CLR 对象类型创建多个隐式模板(DataType
但没有 x:Key
)。只要这些模板在呈现集合的控件的资源范围内,类型就会自动解析它们的模板。