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?

¿Fue útil?

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
scroll top