自定义排序xml绑定DataGridView

时间:2009-12-20 17:39:08

标签: c# xml sorting datagridview databound

我有一个绑定到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? BindingSource排序?对数据集进行排序?

未来读者请注意:

接受的答案对我的代码段不起作用。在加载数据之前必须更改DataType。应手动创建DataSet:

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");

1 个答案:

答案 0 :(得分:1)

您需要更改DataSet,以使列的DataType为System.Int32