1

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

标签 + 文本框或标签 + 组合框或标签 + DatePickers

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

4

1 回答 1

2

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

模板显示的几乎所有其他地方都在使用DataTemplate. 这包括ContentTemplateItemTemplate属性。DataTemplates为任何非可视数据类型定义可视化树。当模板被渲染时,它DataContext就是被渲染的数据对象(即一个List<T>项目),这使得绑定数据属性变得容易。

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

于 2015-03-31T02:05:06.103 回答