仅将未使用的虚拟化列表控件的Visibility
- 属性设置为Collapsed
是否合适。
我有一个实现IEnumerable<SomeType>
的ViewModel,并且有一些虚拟列表控件直接绑定到ViewModel(在标记中声明)。一次总是只有一个列表控件可见。
仅将未使用的列表的Visibility
设置为折叠是否合适,因为在这种情况下,不会为不可见的列表控件生成任何项目,或者我应该更好地清除和设置ItemsSource
-属性?
我知道存在开销,因为两个或更多控件跟踪集合更改(INotifyCollectionChanged
),但IMO此开销可以忽略不计。我是对的吗?
答案 0 :(得分:1)
你是对的。清除收藏品实际上可能会导致更大的性能损失而不是单独使用它们。虽然控件将从绑定的源集合和连接处理程序填充其Items集合,但不会有任何渲染和创建子元素,这几乎总是绑定到集合的慢得多的部分。一旦它被设置为Collapsed,它就不会从渲染引擎的角度出现。