2017-09-06 94 views
0

所以基本上,我有一个类似电子表格的应用程序,它可以对大型XML文档进行更改。对于表格显示,我使用绑定到DataTable的DataGrid。我有两个日期选择器用于选择要显示的行的范围。问题是,我不知道如何,也无法在网上找到合适的解决方案。WPF在Datagrid中显示DataTable行的选定范围

我已经试过这是发生更改时datepickers作出获取显示一件事:

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

...和它的作品在视觉上,但它不是同桌了,所以任何改变我做在那里不适用于我的数据收集。

任何人都可能指向我什么才是解决这个问题的正确方法?或者也许给我一个例子?

感谢提前:)

回答

0

首先,你可以使用新的数据表中保存的逻辑,或将其与table.Merge法合并,原来的数据表。

也,你可以使用的CollectionView过滤器:

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

也可以考虑使用DataView.RowFilter

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;