2017-09-06 3 views
0

Im Grunde genommen habe ich eine tabellenartige Anwendung, die Änderungen an großen XML-Dokumenten vornimmt. Für die Tabellenanzeige habe ich DataGrid verwendet, das an eine DataTable gebunden ist. Ich habe zwei Datepicker für die Auswahl der Reihe von Zeilen, die ich anzeigen möchte. Das Problem ist, ich habe keine Ahnung wie, und ich konnte online keine passende Lösung finden.WPF Anzeige eines ausgewählten Bereichs von DataTable-Zeilen in Datagrid

ich dies als ein Ding versucht haben, die angezeigt wird, wenn Änderungen an Kalenderwerkzeug hergestellt werden:

return table.AsEnumerable().Skip(StartDateIndex()).Take(DateRange()).CopyToDataTable(); 

... und es funktioniert visuell, aber es ist nicht die gleiche Tabelle mehr, so dass alle Änderungen, die ich machen darauf nicht auf meine Sammlung von Daten angewendet werden.

Könnte mich jemand auf den richtigen Ansatz hinweisen, um das Problem zu lösen? Oder zeig mir vielleicht ein Beispiel?

Vielen Dank im Voraus :)

Antwort

0

ersten können Sie die neue Datentabelle in der Logik speichern verwenden oder zu dem ursprünglichen Datentabelle mit table.Merge Methode verschmelzen.

auch, können Sie das Collection Filter verwenden:

var collView = CollectionViewSource.GetDefaultView(table.Rows) as CollectionView; 
collView.Filter = dr => (DateTime)((DataRow)dr)[0] > dtPicker1.Value; 
return collView; 

auch betrachten DataView.RowFilter mit:

var view = table.DefaultView; 
view.RowFilter = string.Format("theFieldDate > #{0}# and theFieldDate < #{1}#", 
           dtPicker1.Value.ToString("MM/dd/yyyy"), 
           dtPicker2.Value.ToString("MM/dd/yyyy") 
          ); 
return view;