DataGridView de ordenación personalizada xml obligado
-
20-09-2019 - |
Pregunta
Tengo un DataGridView con destino a un archivo XML. Me gustaría para ordenar por primera columna y tratar los valores como enteros (no cadenas).
XmlDataDocument xml = new XmlDataDocument();
xml.DataSet.ReadXml("file.xml");
dataGridView.DataSource = new BindingSource(xml.DataSet, "Item");
- Sort (IComparer) no funciona
- Ordenar (DataGridViewColumn, ListSortDirection) trata a todos los valores como cadenas
- SortCompare evento no se desencadena
¿Qué tengo que hacer para hacer este trabajo? Heredar DataGridView y anular Ordenar? Ordenar BindingSource? Ordenar conjunto de datos?
Nota para los futuros lectores:
respuesta aceptada no funciona para mi fragmento de código. Tipo de datos debe ser cambiado antes de cargar los datos. Conjunto de datos se debe crear 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");
Solución
Es necesario cambiar el conjunto de datos de manera que DataType de la columna es System.Int32
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow