我的第一篇文章在这里。WPF list <t>排序
我有一个列表“<”frameworkelement>,我填充选择过程。每个frameworkelement都有一个保存它的ZOrder的uid。
我需要由ZOrder从最低到最高排序这些。我能得到这个使用列表框和添加的UID是这样的:
//Add Object Uid's
ListBox lstTempOrder = new ListBox();
foreach(FrameworkElement feObject in MainWindow.Data.SelectedObjects)
{
lstTempOrder.Items.Add(feObject.Uid);
}
//Reorder from 0 to above of the ZIndexes
lstTempOrder.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending));
,但我需要用List这样做“<” FrameworkElement的>和排序。
这里是我填充列表” < “T>的代码(的selectedObjects和CopyObjectsCollections是列表” < “FrameworkElement的>” 名单。
foreach(FrameworkElement feObject in MainWindow.Data.SelectedObjects)
{
MainWindow.Data.CopyObjectsCollection.Add(feObject);
}
我已经看了CollectionViewSource和IComparer的,但我可以“T真正使它的任何意义。
除了手动做这个的,你应该将列表框绑定到[CollectionViewSource(HTTP:// msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx),它允许对项目进行排序。有关示例,请参阅[绑定到集合](http://msdn.microsoft.com/zh-cn/library/ms752347.aspx#binding_to_collections)。 – Clemens
感谢您的回答。我不确定你是用手工来做什么的。列表框排序只是为了测试,它的工作原理,但我不能解决如何在列表“CopyObjectsCollection”上做同样的事情。我从来没有使用过绑定。 –
Drew
绑定在WPF中至关重要。您可能会开始阅读MSDN上的[数据绑定概述](http://msdn.microsoft.com/en-us/library/ms752347.aspx)文章。 – Clemens