我正在使用 MVVM 方法。
我有一个名为 AllSomethingViewModel 和 AllSomethingView 的 ViewModel 和 View。View Model 包含 SomethingViewModels 列表和 SelectedViewModel。该视图包含一个绑定到 AllSomethingViewModel 的 SelectedVM 属性的用户控件和一个允许我选择 VM 的列表框控件。基本上,当我选择一个新的 VM 时,用户控件的 DataContext 会发生变化,因此与 SomethingViewModel 关联的视图会使用新信息进行更新。
SomethingViewModel 包含一个名为 ObservableCollection(DataPoints) 数据的对象列表。
我有一个绑定到数据的 DataGrid,并且定义了绑定到数据成员的列。这工作正常。我可以更改视图并且此数据网格会更新,一切都很好。
我遇到的问题是,当数据上下文发生变化时,我希望对数据网格应用的任何排序都保持不变。
在与 SomethingViewModel 关联的视图上,我可以订阅 DataContextChanged 事件,但我不确定要从那里做什么才能应用排序。
例如。我有 2 个SomethingViewModel。所以在我的列表中有两个选项。当我选择第一个时,我得到了我的数据网格和我的数据。在数据网格中,我决定按 DateCreated 升序排序。然后我转到我的第二个虚拟机,数据上下文发生了变化,因此网格中的数据已更新,但不再排序!