WPF将DataGrid中的更改保存到DataTable

时间:2009-12-09 05:38:24

标签: c# wpf datagrid datatable data-transfer

我的应用程序要求将WPF DataGrid控件中所做的更改保存回DataTable。我已设法将数据从DataGrid保存到DataTable,但是,从DataGrid保存的数据未显示我所做的更改,它只显示已存在的数据第一次填充DataGrid时。

我到目前为止:

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();
     }
 }

虽然有效,但它不会保存更改,只会保存在DataRow中更改之前的DataGrid

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

终于找到了答案!我必须在

期间获取正在更改的DataRow
 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(...
    }

答案 1 :(得分:0)

您在进行更改后是否正在呼叫AcceptChanges