在不重新构建项目模板的情况下对ItemsControl进行排序?

时间:2014-04-02 11:35:25

标签: c# wpf

我允许用户使用与

类似的东西对ItemsControl显示的项进行排序
var listCollectionView = CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
listCollectionView.CustomSort = mySortComparer;
// Alternative, same Problem: 
// listCollectionView.SortDescriptions.Add(new SortDescription(myProperty)); 

我的收藏的ItemTemplate有点复杂,创建所有项目表示需要大量的时间。 我发现,使用分析器,每种类型重新创建ItemsControl中的每个项目,而不是使用旧项目,只是移动它们。

有没有办法阻止这种情况?

1 个答案:

答案 0 :(得分:1)

如果您尚未使用VirtualizingStackPanel作为ItemsControl的项目面板,请尝试使用。并在ItemsControl上将VirtualizingStackPanel.VirtualizationMode附加属性设置为Recycling