我正在使用MVVM模式。
我有一个名为AllSomethingViewModel和AllSomethingView的ViewModel和View。 ViewModel包含一组SomethingViewModels和SelectedViewModel。 View包含一个绑定到AllSomethingViewModel的SelectedVM属性的用户控件和一个ListBox控件,可以让我选择VM。基本上,当我选择新的VM时,用户控件的DataContext会改变,因此与SomethingViewModel相关联的视图会随着新信息更新。
SomethingViewModel包含一个名为ObservableCollection(DataPoints)的对象列表data。
我将DataGrid绑定到数据和定义了绑定到数据成员的列。这很好用。我可以更改视图,这个数据网格将更新,一切都很好。
我遇到的问题是,我希望无论何时对数据网格应用排序,排序都能在数据上下文更改时保持。
在与SomethingViewModel相关联的视图上,我可以订阅DataContextChanged事件,但我不确定如何从那里获取应用排序的方法。
例如,我有2个SomethingViewModels。因此,在我的列表中有2个选项。当我选择第一个选项时,我会得到我的数据网格及其数据。在数据网格中,我决定按DateCreated升序排序。然后我转到我的第二个VM,数据上下文更改,因此网格中的数据已更新,但不再排序!