Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何使用自定义排序逻辑对绑定的列表框进行排序?_Wpf_Mvvm - Fatal编程技术网

Wpf 如何使用自定义排序逻辑对绑定的列表框进行排序?

Wpf 如何使用自定义排序逻辑对绑定的列表框进行排序?,wpf,mvvm,Wpf,Mvvm,我想从视图而不是在ViewModel中对其进行排序 我看到的每个示例都使用排序描述,但它不是可定制的。视图模型也可以负责视图及其表示所消耗的数据,模型不应该关心数据的显示 您可以将视图绑定到ViewModel上的ObservableCollection,您可能已经拥有了它。 您并没有说明如何允许用户进行排序,因此为了方便起见,我假设有一系列按钮,每个按钮都将绑定到ViewModel上的ICommand,这将修改ObservableCollection以更改其顺序 这将使用ObservableCo

我想从视图而不是在ViewModel中对其进行排序


我看到的每个示例都使用排序描述,但它不是可定制的。

视图模型也可以负责视图及其表示所消耗的数据,模型不应该关心数据的显示

您可以将视图绑定到ViewModel上的ObservableCollection,您可能已经拥有了它。 您并没有说明如何允许用户进行排序,因此为了方便起见,我假设有一系列按钮,每个按钮都将绑定到ViewModel上的ICommand,这将修改ObservableCollection以更改其顺序

这将使用ObservableCollection中的新顺序刷新视图


您仍在维护层,避免代码落后,并允许对排序逻辑进行测试。

您是否尝试过IComparer在视图模型中使用绑定集合实现自定义排序?正如我所说,我希望避免这种情况。出于好奇,在视图中设计排序的原因是什么?根据“定义”,数据操作通常应该在ViewModel中完成。但这并不是真正的数据操作(在我看来)。数据不受显示顺序的影响,它只影响用户对数据的看法。因此,在视图中这样做。