在视图或视图模型中订购元素?
Order elements in view or in view model?
我正在使用 MVVM 模式,我想对数据网格上的元素进行排序。在我的视图模型中,我有一个带有数据网格元素的 ObservableCollection。
在数据网格中,我可以对列名中的元素进行排序,这很好,而且适用于多列。我喜欢这个功能。
但是,我想做一些更具体的排序,例如首先显示 ColumnB 具有的元素 "valueC" 然后显示其余元素,当我对列名进行排序时,顺序对于该列,但首先显示带有 "valueC" 的元素,然后显示按我单击的列排序的其余元素。
为此,我可以对视图模型的 ObservableCollection 中的元素进行排序,但我认为此功能更像是在视图中完成的,而且因为我想按列排序,所以我不得不对视图说被点击的列。
但是,我不知道是否可以在视图中进行这种复杂的排序,也许可以使用某些转换器或任何方式。
非常感谢。
每个逻辑都必须在 ViewModel 中完成。 View 必须不知道显示数据背后的逻辑。
在简单的情况下,您可以在视图中对项目进行排序,但在实际情况下,排序不仅会影响可见项目,还会影响由于分页而未显示的项目。
我正在使用 MVVM 模式,我想对数据网格上的元素进行排序。在我的视图模型中,我有一个带有数据网格元素的 ObservableCollection。
在数据网格中,我可以对列名中的元素进行排序,这很好,而且适用于多列。我喜欢这个功能。
但是,我想做一些更具体的排序,例如首先显示 ColumnB 具有的元素 "valueC" 然后显示其余元素,当我对列名进行排序时,顺序对于该列,但首先显示带有 "valueC" 的元素,然后显示按我单击的列排序的其余元素。
为此,我可以对视图模型的 ObservableCollection 中的元素进行排序,但我认为此功能更像是在视图中完成的,而且因为我想按列排序,所以我不得不对视图说被点击的列。
但是,我不知道是否可以在视图中进行这种复杂的排序,也许可以使用某些转换器或任何方式。
非常感谢。
每个逻辑都必须在 ViewModel 中完成。 View 必须不知道显示数据背后的逻辑。
在简单的情况下,您可以在视图中对项目进行排序,但在实际情况下,排序不仅会影响可见项目,还会影响由于分页而未显示的项目。