我正在使用MVVM模式,我想对数据网格上的元素进行排序。在我的视图模型中,我有一个带有datagrid元素的ObservableCollection。
在datagrid中,我可以对列名称中的元素进行排序,这样很好,对于多列。我喜欢这个功能。
但是,我想做一些更具体的排序,例如首先显示ColumnB具有“valueC”的元素,然后显示其余元素,当我排序列名时,为该列排序但是首先显示带有“valueC”的元素,然后显示按我单击的列排序的其余元素。
要做到这一点,我可以对视图模型的ObservableCollection中的元素进行排序,但我认为这个功能更多的是它将在视图中完成,另外因为我想按列排序,所以我会必须对视图说出被点击的列。
但是,我不知道在视图中是否可以进行这种复杂的排序,可能是使用某种转换器或以任何方式。
非常感谢。
答案 0 :(得分:1)
每个逻辑都必须在ViewModel中完成。 View必须对显示数据背后的逻辑一无所知。
在简单的情况下,您可以在视图中订购商品,但在实际情况下,订购不会仅影响可见商品,但会影响因分页而未显示的商品。