wpf - 在 View 或 View 模型中订购元素?

标签 wpf mvvm datagrid short

我正在使用MVVM模式,我想对数据网格上的元素进行排序。在我的 View 模型中,我有一个带数据网格元素的ObservableCollection。

在数据网格中,我可以按列名称对元素排序进行排序,这样很好,并且可以用于多个列。我喜欢这个功能。

但是,我想做一些更具体的排序,例如,首先显示ColumnB具有“valueC”的元素,然后显示其余元素,当我为列名排序时,先显示该列的顺序具有“valueC”的元素,然后其余元素按我单击的列排序。

为此,我可以对 View 模型的ObservableCollection中的元素进行排序,但是我认为此功能更多地是在 View 中完成的,此外,因为我想按列排序,所以我不得不说查看被单击的列。

但是,我不知道是否有可能在 View 中执行这种复杂的排序,可能是通过某些转换器或以任何方式进行的。

非常感谢。

最佳答案

每个逻辑都必须在ViewModel中完成。 View必须不了解显示数据背后的逻辑。

在简单的情况下,您可以在 View 中订购商品,但在实际情况下,订购不仅会影响可见商品,而且还会影响由于分页而未显示的商品。

关于wpf - 在 View 或 View 模型中订购元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946571/

相关文章:

c# - 从多个线程更新 DataGrid

c# - 如何使用WPF为DataGrid上的每个记录添加删除按钮?

c# - 向 DataGridTextColumn 添加事件或命令

c# - 如何停止在 wpf 数据网格上拖动选择

c# - 在WPF MVVM中,如何在运行时从文本框值调整图像大小?

c# - 对象的 WPF 绑定(bind)列表到自定义控件

c# - Xamarin.Forms MVVM Light IDialogService ShowMessage 抛出 native 异常

c# - WPF DataGrid 仅计算可见行

c# - WPF:绑定(bind) TreeView

c# - Xamgrid 刷新或重新应用过滤器