我想自己处理所有排序,所以在Datagrid的_Sorting事件中,我设置了e.Handled = True。但是,WPF仍会触发集合刷新,并且似乎忽略了Handled标志。
当我查看堆栈跟踪时,我看到了:
PresentationFramework.dll!MS.Internal.Data.CollectionViewProxy.Refresh() + 0x2a bytes
PresentationFramework.dll!System.Windows.Controls.ItemCollection.RefreshOverride() + 0x53 bytes
PresentationFramework.dll!System.Windows.Data.CollectionView.Refresh() + 0x44 bytes
PresentationFramework.dll!System.Windows.Controls.DataGrid.PerformSort(System.Windows.Controls.DataGridColumn sortColumn) + 0xbe bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.DataGridColumnHeader.OnClick() + 0x5d bytes
这是WPF中的错误吗?因为Handled属性不应该阻止这些调用被触发吗?
答案 0 :(得分:0)
为什么不考虑将DataGrid.CanUserSortColumns
/ DataGridColumn.CanUserSort
属性设置为false?
您要执行的操作可能与Sorting
事件无关。