WPF 数据绑定与操作处理深度解析
高级绑定与集合视图
在数据绑定时,即使数据并非统一格式,我们也能使用HierarchicalDataTemplate,针对层级中的每种类型定义不同的模板。
在进行绑定时,通常涉及三个对象:数据源、绑定和目标元素。而在列表绑定时,还存在第四个对象——集合视图。集合视图负责跟踪当前项(货币管理),以及对数据进行过滤、排序和分组。可以将其视为底层数据的轻量级包装器,让我们能在同一数据上拥有多个“视图”。对于小列表而言,这或许不太重要,但处理大型数据集时,避免多次将数据加载到内存就变得至关重要。
货币管理
集合视图提供的最重要服务是货币管理,即跟踪列表中的当前项。每当绑定到数据列表时,系统会在后台创建一个默认的集合视图来跟踪当前项。查看货币管理工作原理的最简单方法是使用列表控件的IsSynchronizedWithCurrentItem属性,该属性可使列表选择与视图中的当前项同步。
以下是一个示例代码:
public class AdvancedBinding : Window { public AdvancedBinding() { StackPanel sp = new StackPanel(); Person[] names = new Person[] { new Person(new Name("Chris", "Anderson")), new Person(new Name("Don", "Box")),