1

我有一个 listView 显示一堆图表。我可以使用不同的标准对这个列表视图进行排序。不幸的是,当我执行排序时,操作花费的时间比预期的要长,我意识到在触发排序后,所有图表都被重新创建。

我的数据源是一个可观察的集合,视图由一个图表控件和一些标签组成。我使用视图排序描述对视图执行排序,所以排序应该在视图而不是数据源上执行,对吗?

lstView.Items.SortDescriptions.Clear();
lstView.Items.SortDescriptions.Add(new SortDescription(_field, _lstViewDirection));

我一直在四处寻找,似乎排序触发了刷新,从控件中删除了 UI 元素并重新创建它们……但这似乎没有必要,因为我只是对 UI 元素的位置进行排序。

有没有办法避免这种刷新行为,只重新排列 UI 元素的位置?

4

1 回答 1

0

您需要使用虚拟化,以便仅重绘 UI 中显示的元素而不是整个集合。

http://www.codeproject.com/KB/WPF/WpfDataVirtualization.aspx

于 2011-08-23T13:51:21.663 回答