Пользовательская сортировка с привязкой к XML DataGridView - PullRequest
1 голос
/ 20 декабря 2009

У меня есть DataGridView, связанный с XML-файлом. Я хотел бы отсортировать по первому столбцу и рассматривать значения как целые числа (не строки).

XmlDataDocument xml = new XmlDataDocument();
xml.DataSet.ReadXml("file.xml");

dataGridView.DataSource = new BindingSource(xml.DataSet, "Item");
  • Сортировка (IComparer) не работает
  • Сортировка (DataGridViewColumn, ListSortDirection) обрабатывает все значения как строки
  • Событие SortCompare не инициируется

Что я должен сделать, чтобы заставить эту работу? Унаследовать DataGridView и переопределить сортировку? Сортировка BindingSource? Сортировать DataSet?

Примечание для будущих читателей:

Принятый ответ не работает для моего фрагмента кода. 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 Ответ

1 голос
/ 20 декабря 2009

Вам нужно изменить DataSet, чтобы столбец DataType был System.Int32.

...