私はMVVMアプローチを使用しています。
AllSomethingViewModel と AllSomethingView という ViewModel と View があります。ビュー モデルには、SomethingViewModels と SelectedViewModel のリストが含まれています。ビューには、AllSomethingViewModel の SelectedVM プロパティにバインドされたユーザー コントロールと、VM を選択できるリストボックス コントロールが含まれています。基本的に、新しい VM を選択すると、usercontrol の DataContext が変更されるため、SomethingViewModel に関連付けられたビューが新しい情報で更新されます。
SomethingViewModel には、ObservableCollection(DataPoints) データと呼ばれるオブジェクトのリストが含まれています。
データにバインドされた DataGrid と、データのメンバーにバインドされた列が定義されています。これはうまくいきます。ビューを変更すると、このデータグリッドが更新され、すべてがうまくいきます。
私が直面している問題は、データ コンテキストが変更されたときに、データ グリッドに適用される並べ替えを保持したいということです。
SomethingViewModel に関連付けられたビューでは、DataContextChanged イベントをサブスクライブできますが、並べ替えを適用するためにそこから何をすべきかわかりません。
例えば。私は2つのSomethingViewModelsを持っています。したがって、私のリストには2つのオプションがあります。最初のものを選択すると、データを含むデータグリッドが取得されます。データグリッドで、DateCreated の昇順で並べ替えることにしました。次に、2 番目の VM に移動します。データ コンテキストが変更されるため、グリッド内のデータは更新されますが、並べ替えられなくなります。