我对如何在 MVVM 应用程序中使用 ObservableCollection 和 CollectionViews 感到非常困惑。我对技术解释不感兴趣,你告诉我“当你绑定到 ObservableCollection 时你实际上是如何使用 CollectionView”。
我有一个列表框。ListBox 数据绑定到 ObservableCollection 集合。
我也有一个组合框。在组合框中,我有两个字符串:“按字母顺序排序”和“按字母顺序排序”。根据选择的项目,会发生逻辑排序操作。这里没有什么特别的。
现在,我还有要求。排序发生时必须没有视觉副作用。
例如:
- 用户在 ListBox 中看到“m”、“n”、“o”,他选择“n”,然后按字母顺序反向排序。
- 用户现在看到“o”、“n”、“m”。ListBox 不会以任何方式滚动。用户仍应看到“n”被选中(SelectedItem 绑定到 ViewModel 并且不应触发任何更改事件)。
我想要的可以实现吗?没有代码,因为老实说我不知道 CollectionView 是否旨在支持这一点。
如果您可以向我指出有关此的教程,那也会有所帮助(最好是带有完整代码的教程)。老实说,我找不到像动态排序列表框这样简单的教程。