1

私のアプリケーションでは、WPFDataGridコントロールで行われた変更をに保存する必要がありDataTableます。からデータを保存できましたDataGridDataTable、から保存されたデータには、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ます。

私は何かが足りないのですか?

4

2 に答える 2

2

ついに答えが見つかりました!変更されていたものを取得する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(...);
}
于 2009-12-10T09:44:38.953 に答える
0

変更を加えた後、 AcceptChangesを呼び出す必要があります。

于 2009-12-09T06:13:37.070 に答える