2016-04-11 19 views
0

ürünümde DataGrid ürününe ilişkin öğeler bulunmaktadır. DataTable, CSV dosyasından doldurulur. Kullanıcının yeni satırlar eklemesine izin veriyorum ancak DataTable'u nasıl güncelleyeceğinden emin değilim, ardından CSV'u güncellemek için bunu kullanıyorum.DataGrid ÖğeleriSource to CSV'ye Güncelleştirilebilen

Başlamak için DataGrid'un kendisinde RowEditEnding olayını kullanmam gerektiğini düşünüyorum. Denediğim şey bu;

private void OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e) 
{ 
    var dataTable = new DataTable(); 
    var itemsSource = subbieDataGrid.ItemsSource as IEnumerable; 
    foreach (var item in subbieDataGrid.Items) 
    { 
     dataTable.Rows.Add(item); 
    } 
    CommonEngine.DataTableToCsv(dataTable, @"C:\Users\dand\Desktop\Subcontractors.csv", ','); 
} 

Ancak, burada yaptığım şeyle ilgili iki sorunum var. Öncelikle dizinin DataTable'dan daha uzun olduğunu söyleyen bir hata atılınca işe yaramıyor. İkincisi

, bunu tamamen yeni DataTable oluşturup orijinal öğeler artı orijinal DataTable kullanmak sadece yeni öğe eklemek ve kullanma CSV dosyayı güncelleştirmek ne zaman kendisine yenisini eklemek verimsiz olduğunu düşünüyorum DataTable. Ancak, bunun nasıl yapılacağından emin değilim.

cevap

1

Ben bu adım Datgrid buna iyi şans deneyin kolayca

DataTable previewForexcel = new DataTable(); 
       previewForexcel = ((DataView)DatabaseGrid.ItemsSource).ToTable(); 

DataTable'a verecek bu adımı

foreach (var item in subbieDataGrid.Items) 
    { 
     dataTable.Rows.Add(item); 
    } 

önerilmez adımı

atlayabilir umut!