当 TabControl 绑定到 ViewModels 时,WPF 变慢

Car*_*s00 6 .net c# data-binding wpf mvvm

TabControl直接绑定到IEnumerable<ViewModelBase>(不同的 ViewModel),使用DataTemplates. 但是在切换选项卡时,可以看到TabItems完全重绘并且速度非常慢。正常吗???

Opp*_*nal 2

您的数据上下文是否真正将 anIEnumerable<T>作为绑定源公开?如果是这样,我建议您查看如何解析数据绑定引用。这不会明确解决重绘问题,但如果您使用支持INotifyPropertyChanged接口的集合(例如ObservableCollectionICollectionView数据源)公开视图模型数据源,您将获得更好的绑定和渲染性能。

关于这个问题的重绘方面,您应该看看WPF 博士的这篇文章。对于您所看到的性能问题,有一个建议的解决方案,更进一步,您将编写 TabControl 子类,并可能使用 VirtualizingStackPanel作为自定义 TabControl 的项目源。

本文介绍您可能尝试的 UI 和数据虚拟化选项。