DataGridView ordinamento personalizzato xml vincolati
-
20-09-2019 - |
Domanda
Ho un DataGridView legato al file xml. Vorrei ordinare da prima colonna e trattare i valori come numeri interi (non stringhe).
XmlDataDocument xml = new XmlDataDocument();
xml.DataSet.ReadXml("file.xml");
dataGridView.DataSource = new BindingSource(xml.DataSet, "Item");
- Sort (IComparer) non funziona
- Sort (DataGridViewColumn, ListSortDirection) tratta tutti i valori come stringhe
- evento SortCompare non viene attivato
Che cosa devo fare per fare questo lavoro? Ereditare DataGridView e sovrascrivere Sort? Ordina BindingSource? Ordina DataSet?
Nota per i lettori futuri:
risposta accettata non funziona per il mio frammento di codice. DataType deve essere cambiato prima del caricamento dei dati. DataSet deve essere creato manualmente:
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");
Soluzione
È necessario modificare il DataSet in modo che tipo di dati della colonna è System.Int32
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow