自定义排序xml绑定DataGridView
-
20-09-2019 - |
题
我有一个绑定到 xml 文件的 DataGridView。我想按第一列排序并将值视为整数(而不是字符串)。
XmlDataDocument xml = new XmlDataDocument();
xml.DataSet.ReadXml("file.xml");
dataGridView.DataSource = new BindingSource(xml.DataSet, "Item");
- 排序(IComparer)不起作用
- Sort(DataGridViewColumn,ListSortDirection) 将所有值视为字符串
- SortCompare 事件未触发
我需要做什么才能使这项工作成功?继承DataGridView并覆盖Sort?对绑定源进行排序?对数据集排序?
未来读者请注意:
接受的答案不适用于我的代码片段。加载数据之前必须更改数据类型。应手动创建数据集:
DataTable table = new DataTable("Item");
table.Columns.Add(new DataColumn("id", typeof(int)));
table.Columns.Add(new DataColumn("name", typeof(string)));
DataSet set = new DataSet();
set.Tables.Add(table);
set.ReadXml("file.xml", XmlReadMode.IgnoreSchema);
dataGridView.DataSource = new BindingSource(set, "Item");
解决方案
您需要更改数据集,以便列的数据类型为 System.Int32
.
不隶属于 StackOverflow