2009-12-20 7 views
1

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

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

dataGridView.DataSource = new BindingSource(xml.DataSet, "Item"); 
  • Sort (IComparer) не работает
  • Sort (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

Вы должны изменить набор данных, так что DataType столбца является System.Int32.

Смежные вопросы