WPF Guardar cambios en la cuadrícula de datos a DataTable
-
18-09-2019 - |
Pregunta
Mi aplicación requiere que los cambios realizados en el control DataGrid
WPF se guardan de nuevo a la DataTable
. He conseguido salvar los datos de la DataGrid
a DataTable
, sin embargo, los datos guardados de la DataGrid
no muestra los cambios que he hecho, sólo se muestran los datos que ya estaba allí cuando el DataGrid
fue poblada.
He llegado hasta aquí:
public void UpdateQueueData(object sender, DataGridRowEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
DataGridRow dgRow = e.Row;
DataRowView rowView = dgRow.Item as DataRowView;
DataRow drItem = rowView.Row;
Queue.Rows.RemoveAt(e.Row.GetIndex());
Queue.ImportRow(drItem);
WriteXML();
}
}
Esto funciona, pero no guarda los cambios, sólo se salva el DataRow
como lo era antes de que se cambió en el DataGrid
.
Me estoy perdiendo algo?
Solución
Finalmente encontró la respuesta !. Tengo que DataRow que estaba siendo cambiado durante el
private void dataGrid_CurrentCellChanged(object sender, EventArgs e)
{
DataTable dt = ((DataView)dataGridQueue.ItemsSource).ToTable();
/*Set the value of my datatable to the the changed version before
* writing it so a file
*/
dt.WriteXMLScema(...
}
Otros consejos
AcceptChanges después de realizar los cambios?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow