MVVM アプリケーションで ObservableCollection と CollectionViews をどのように使用する必要があるかについて、私は非常に混乱しています。「ObservableCollectionにバインドするときに実際にCollectionViewを使用している」という技術的な説明には興味がありません。
私はリストボックスを持っています。ListBox は ObservableCollection コレクションにデータバインドされています。
コンボボックスもあります。ComboBox には、「Sort Alphabetically」と「Sort Reverse-Alphabetically」という 2 つの文字列があります。選択された項目に応じて、論理ソート アクションが発生します。ここでは特別なことは何もありません。
さて、まだ要件があります。並べ替えが発生したときに視覚的な副作用があってはなりません。
例えば:
- ユーザーは ListBox に "m"、"n"、"o" を表示し、"n" を選択して、逆アルファベット順に並べ替えます。
- ユーザーには「o」、「n」、「m」が表示されます。ListBox はスクロールしません。ユーザーには引き続き "n" が選択されているはずです (SelectedItem は ViewModel にバインドされており、変更イベントは発生していません)。
私が望んでいることは達成可能ですか?CollectionView がこれをサポートすることを意図しているかどうかは正直わからないので、コードはありません。
これに関するチュートリアルを教えていただければ、それも役立ちます(できれば完全なコードを含むもの)。正直なところ、リストボックスを動的にソートするのと同じくらい簡単なことについてのチュートリアルは見つかりませんでした。