【发布时间】:2021-04-02 03:49:15
【问题描述】:
使用 DataGrid,我显示了一个 DataTable,其中包含在运行时生成的内容。因此,我不能使用预定义的列。每行包含一个名称作为其第一个元素,然后是可变数量的数据,这些数据通常是数字,但也可能是 null 或字符串 "Invalid"。
目前所有数据都被解释为字符串,这会导致对列进行排序导致按字母顺序排列而不是数字顺序的问题,例如“0, 1, 12, 20, 3” 而不是“0, 1, 3, 12, 20”。我试图通过从IComparable<T>(DataGrid 忽略)继承所有显示的数据,或者通过覆盖 DataGrid 的OnSorting() 方法(我只找到假设我使用 ListCollectionViews,而不是 DataTables 的源)来解决这个问题.
有谁知道如何在绑定到运行时生成的 DataTable 的 DataGrid 上实现自定义排序行为?
【问题讨论】:
-
尝试添加具有整数排序值的列,并为此列设置
DataGridColumn.SortMemberPath。也请花一点时间阅读Minimal Complete Verifiable Example。
标签: c# wpf datatable datagrid icomparable