【发布时间】:2021-03-04 03:44:25
【问题描述】:
UWP XAML ItemsControl 是许多复杂 XAML 类的基础,例如 ListView 和 GridView。
文档Item containers and templates 描述了这些控件的两个关键部分:
- 数据模板
- 控制模板
这些部分组合起来形成最终视图:
容器控件(例如 ListViewItem 和 GridViewItem)由两个重要部分组成,它们结合起来为项目显示最终的视觉效果:数据模板和控件模板 .
在实践中,开发者通过在ListView.ItemTemplate(或GridView.)中指定DataTemplate来指定数据模板,并且可以通过向ListView.ItemContainerStyle提供Style(TargetType="ListViewItem")来自定义控件模板。
开发人员还可以自定义ListView.ItemsPanel(默认为ItemsStackPanel),ListView.ItemContainerStyle 的默认Template 包含ListViewItemPresenter。物品容器和模板的文档也提到了这些。
这就提出了一个问题:
当我将 ListView(或 GridView 或任何 ItemsControl)添加到我的代码中时,我实际上添加了什么?我可以自定义什么?我的数据如何显示?
据我所知,ListView 看起来像:
-
ListView- 渲染它的
Template,它以某种方式渲染:-
ItemsPanel- 呈现其
ItemsPanelTemplate,即:-
ItemsStackPanel- 为每个项目渲染:
-
ListViewItem- 呈现其
Template,即:-
ListViewItemPresenter- 不知何故呈现:
ListView.ItemTemplate
- 不知何故呈现:
-
- 呈现其
-
- 为每个项目渲染:
-
- 呈现其
-
- 渲染它的
但这一点我不清楚。
【问题讨论】:
标签: xaml listview uwp windows-runtime