使用哪个 WPF 模板?

Which WPF template to use?

我想创建一个可重复使用的 ListView,其中包含以下任何或所有行:

标签 + 文本框 要么 标签+组合框 要么 标签 + 日期选择器

使用模板。我仍然不太了解模板,想知道使用其中的哪些 - ControlTemplate、DataTemplate、ItemsTemplate 或 ContentTemplate - 以及如何使用。谢谢!

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

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

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