2009-12-09 6 views
0

Mon application nécessite que les modifications apportées dans le contrôle WPF DataGrid soient enregistrées à DataTable. J'ai réussi à enregistrer des données à partir de DataGrid à DataTable, cependant, les données enregistrées à partir du DataGrid n'affiche pas les changements que j'ai faits, il montre juste les données qui étaient déjà là quand le DataGrid a été peuplé.WPF Enregistrer les modifications dans DataGrid à DataTable

J'ai jusqu'ici:

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

Cela fonctionne, mais il ne sauve pas les changements, il enregistre juste le DataRow comme il était avant qu'il ne soit changé dans le DataGrid.

Ai-je raté quelque chose?

Répondre

1

Enfin trouvé la réponse !. Je dois obtenir le DataRow qui a été changé au cours de la

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(... 
    } 
0

appelez-vous AcceptChanges après avoir apporté vos modifications?

+0

Désolé, je voulais dire les modifications apportées à la grille de données ne montraient pas dans le DataRow: drItem lorsque l'événement était trigged. –

Questions connexes