绑定到ViewModel的多个List-Controls

时间:2010-07-06 20:03:55

标签: wpf mvvm virtualization

仅将未使用的虚拟化列表控件的Visibility - 属性设置为Collapsed是否合适。

我有一个实现IEnumerable<SomeType>的ViewModel,并且有一些虚拟列表控件直接绑定到ViewModel(在标记中声明)。一次总是只有一个列表控件可见。

仅将未使用的列表的Visibility设置为折叠是否合适,因为在这种情况下,不会为不可见的列表控件生成任何项目,或者我应该更好地清除和设置ItemsSource -属性?

我知道存在开销,因为两个或更多控件跟踪集合更改(INotifyCollectionChanged),但IMO此开销可以忽略不计。我是对的吗?

1 个答案:

答案 0 :(得分:1)

你是对的。清除收藏品实际上可能会导致更大的性能损失而不是单独使用它们。虽然控件将从绑定的源集合和连接处理程序填充其Items集合,但不会有任何渲染和创建子元素,这几乎总是绑定到集合的慢得多的部分。一旦它被设置为Collapsed,它就不会从渲染引擎的角度出现。