你实际上是在要求一些逻辑矛盾的东西。假设我ListCollectionView
按字母顺序排序:
American
Continental
Festival
Imperial
Tower
Worldwide
我应该能够在andLuxor
之间插入吗?如果视图已排序,则不会。那个物品只能去一个地方。它出现在视图中的位置与它可能出现在基础列表中的位置无关。American
Continental
如果不了解您的应用程序的更多信息,就很难确切知道该建议什么。但是,如果对集合视图进行排序,则使项目出现在视图中特定位置的方法是为其排序键分配一个值,该值将在刷新视图后使其出现在所需位置.
执行此操作的一种相当简单(和通用)的方法是向DateTime
数据项类添加一个属性,DateTime.Now
在项的构造函数中将其设置为,并使其成为视图使用的最后一个排序键。然后,在添加新项目时,将其其他排序键属性设置为当前选定项目的值。如果您这样做,新项目将始终出现在适当的位置,只要您不更改任何排序键属性的值。
话虽如此,从您想要支持的其他功能来看,我相信您根本不应该将 aListCollectionView
用于您所调用的内容sortedList
。此列表未排序。它是有序的,这根本不是一回事。当用户在列表中向上移动一个项目时,您实际上想要更改它的位置。
您可能想要做的是将列表实现为,并将其包装在公开、、、、和属性ObservableCollection
的视图模型类中。然后,您可以将a or的和属性绑定到类中的和属性,并将 UI 中的按钮或超链接或其他任何内容绑定到命令。这些命令将使用and来操作属性,并且由于是,因此 UI 将保持同步。Items
SelectedItem
AddNewCommand
MoveUpCommand
MoveDownCommand
SaveCommand
ItemsSource
SelectedItem
ListBox
ListView
Items
SelectedItem
Items
Remove
Insert
Items
ObservableCollection