2009-12-20 119 views
1

我有一個DataGridView綁定到XML文件。我想按第一列排序並將值作爲整數(而不是字符串)處理。自定義排序XML綁定DataGridView

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

dataGridView.DataSource = new BindingSource(xml.DataSet, "Item"); 
  • 排序(IComparer的)不工作
  • 排序(的DataGridViewColumn,ListSortDirection)將所有值作爲字符串
  • SortCompare事件不會被觸發

我有什麼做這個工作?繼承DataGridView並重寫Sort?對BindingSource進行排序?對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

您需要更改的DataSet,以便列的數據類型爲System.Int32