在视图或视图模型中排序元素?

时间:2015-03-09 16:06:16

标签: wpf mvvm datagrid short

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

在datagrid中,我可以对列名称中的元素进行排序,这样很好,对于多列。我喜欢这个功能。

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

要做到这一点,我可以对视图模型的ObservableCollection中的元素进行排序,但我认为这个功能更多的是它将在视图中完成,另外因为我想按列排序,所以我会必须对视图说出被点击的列。

但是,我不知道在视图中是否可以进行这种复杂的排序,可能是使用某种转换器或以任何方式。

非常感谢。

1 个答案:

答案 0 :(得分:1)

每个逻辑都必须在ViewModel中完成。 View必须对显示数据背后的逻辑一无所知。

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