有人尝试实现以下场景吗?我想知道有哪些解决方案可以完成此操作。这对我们的用户来说真的很痛苦...
我们有一个 WPF DataGrid,它使用户可以根据列(其中Column=Value或Begins With、Ends With、Contains等等)过滤数据行。他们还可以通过单击其中一个列标题来对数据进行排序,或者我们也提供了一个排序窗口,他们可以在其中添加多个列,并为每个列选择升序/降序(这只是应用于他们选择的每个列的“SortDirection”属性,它似乎还使用了一个“CollectionView”以及“SortDescriptions”)。问题是,当用户编辑数据并且有“filter”或“sort”(或两者兼有)时,如果用户编辑其中一个已经过滤/排序的列上的值,则该行将"移动"并随之带动光标。如果新值是一个被"过滤"的值,则该行将完全消失(由于用户应用了"过滤")。
他们想要发生以下两种情况中的其中一种:
1 - 每次更改单元格后立即自动进行排序和过滤,如果行“移动”,则将光标移动到下一行(相同单元格) ,而不是光标跟随行到其新位置(可能会导致当前可视数据行滚动到屏幕外)。
2 - 一旦编辑了行,禁用所有排序和过滤,直到用户点击"保存"或"刷新"(或其他选项)?
我也可以看到我们可能会在过滤和排序上采取不同的方法。
有人有更好的想法或者有任何关于如何实现此操作的想法吗?
我有一些想法(例如,要禁用排序: 在我的 CellEditEnding 事件处理程序中,我可以存储用户的排序选项,从每个列中清除它们,然后在用户单击“保存”/“重置”时重新应用它们,或者我可以处理“Sorting”事件并将“e.handled”设置为true,当数据正在被编辑时?)。我对 WPF 和 DataGrid 还是太新了,我想知道是否存在一个“最佳实践”或我还没有找到的属性,比如“DisableSorting = true/false”(lol)。
有什么想法?意见?
我们有一个 WPF DataGrid,它使用户可以根据列(其中Column=Value或Begins With、Ends With、Contains等等)过滤数据行。他们还可以通过单击其中一个列标题来对数据进行排序,或者我们也提供了一个排序窗口,他们可以在其中添加多个列,并为每个列选择升序/降序(这只是应用于他们选择的每个列的“SortDirection”属性,它似乎还使用了一个“CollectionView”以及“SortDescriptions”)。问题是,当用户编辑数据并且有“filter”或“sort”(或两者兼有)时,如果用户编辑其中一个已经过滤/排序的列上的值,则该行将"移动"并随之带动光标。如果新值是一个被"过滤"的值,则该行将完全消失(由于用户应用了"过滤")。
他们想要发生以下两种情况中的其中一种:
1 - 每次更改单元格后立即自动进行排序和过滤,如果行“移动”,则将光标移动到下一行(相同单元格) ,而不是光标跟随行到其新位置(可能会导致当前可视数据行滚动到屏幕外)。
2 - 一旦编辑了行,禁用所有排序和过滤,直到用户点击"保存"或"刷新"(或其他选项)?
我也可以看到我们可能会在过滤和排序上采取不同的方法。
有人有更好的想法或者有任何关于如何实现此操作的想法吗?
我有一些想法(例如,要禁用排序: 在我的 CellEditEnding 事件处理程序中,我可以存储用户的排序选项,从每个列中清除它们,然后在用户单击“保存”/“重置”时重新应用它们,或者我可以处理“Sorting”事件并将“e.handled”设置为true,当数据正在被编辑时?)。我对 WPF 和 DataGrid 还是太新了,我想知道是否存在一个“最佳实践”或我还没有找到的属性,比如“DisableSorting = true/false”(lol)。
有什么想法?意见?