を使用する MVVM ベースの WPF アプリに取り組んでいますDataGrid
。ObservableCollection<Widget>
グリッドは(Widget
リスト)にデータ バインドされています。Widget
ユーザーは、現在選択されている の下のリストにを挿入したり、選択Widget
した を削除したり、グリッドでWidget
を並べ替えたりできる必要があります。Widget
ドラッグ アンド ドロップで並べ替えを実装します。
これを掘り下げる前に、私のアプローチの現実を確認したいと思います。これが私がやろうとしていることです:Widget
クラスにはIndex
、リストの順序付けに使用されるプロパティがありWidget
ます。追加、削除、および並べ替えは、この Index プロパティを操作することによって行われ、並べ替えWidget
はCollectionView
.
DataContext
が設定される前に、Widget
リストはIndex
プロパティでソートされます。ユーザーが を追加するWidget
と、プロパティはグリッドで選択された項目の下Index
ごとに 1 ずつ増加し、新しい項目には再番号付けによって開かれたインデックス番号が与えられます。リストが再ソートされ、バインディングが更新されます。Widget
Widget
Widget
ユーザーが を削除するWidget
と、Widget
がリストからIndex
削除され、削除されたアイテムの下にあるグリッド上のアイテムのプロパティが 1 減りますWidget
。上記のように、リストが再ソートされ、バインディングが更新されます。並べ替えは、削除と挿入の組み合わせとして行われます。
これが私の質問です: これは、挿入、削除、および並べ替えを実装するための合理的な戦略ですか? それについてもっと良い方法はありますか?このテーマに関する良い記事やブログ投稿はありますか? 私は見ましたが、適切なものは何も思いつきません。
ご協力いただきありがとうございます。