あなたは実際に、論理的な矛盾を求めています。ListCollectionView
アルファベット順にソートされているとします:
American
Continental
Festival
Imperial
Tower
Worldwide
Luxor
との間に挿入できるようにする必要がAmerican
ありContinental
ますか? ビューがソートされている場合ではありません。アイテムが移動できる場所は 1 つだけです。また、ビューのどこに表示されるかは、基になるリストのどこに表示されるかとは無関係です。
アプリケーションについて詳しく知らなければ、何を提案すればよいかを正確に知ることは困難です。ただし、コレクション ビューが並べ替えられている場合、アイテムをビューの特定の場所に表示する方法は、並べ替えキーに値を割り当てることです。ビューが更新されると、目的の場所にアイテムが表示されます。 .
DateTime
これを行うかなり簡単な (そして一般的な) 方法は、データ項目クラスにプロパティを追加DateTime.Now
し、項目のコンストラクターでそれを設定し、それをビューが使用する最後の並べ替えキーにすることです。次に、新しいアイテムを追加するときに、その他のソート キー プロパティを現在選択されているアイテムの値に設定します。これを行うと、ソート キー プロパティの値を変更しない限り、新しいアイテムは常に適切な場所に表示されます。
そうは言っても、サポートしたい他の機能から、ListCollectionView
呼び出しているものに a を使用するべきではないと私は信じていますsortedList
。このリストはソートされていません。順序付けられていますが、まったく同じではありません。ユーザーがリスト内でアイテムを上に移動すると、実際にはその位置を変更する必要があります。
おそらくやりたいことは、リストを として実装し、、、、、、およびプロパティを公開するObservableCollection
ビュー モデル クラスにラップすることです。次に、またはのandプロパティをクラスのandプロパティにバインドし、UI のボタンやハイパーリンクなどをコマンドにバインドできます。コマンドは と を使用してプロパティを操作します。は であるため、UI は同期されたままになります。Items
SelectedItem
AddNewCommand
MoveUpCommand
MoveDownCommand
SaveCommand
ItemsSource
SelectedItem
ListBox
ListView
Items
SelectedItem
Items
Remove
Insert
Items
ObservableCollection