我是wpf,实体框架6和LINQ的新手。我有一个数据网格,它被限制在一个CollectionViewSource上,它被限制在ObservableCollection上。简单地说,我遵循了在https://msdn.microsoft.com/en-us/data/jj574514中找到的教程,成功地从数据网格中添加、更新和删除。本教程展示了如何加载完整的表(即类别):
private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Data.CollectionViewSource categoryViewSource =
((System.Windows.Data.CollectionViewSource)(this.FindResource("categoryViewSource")));
_context.Categories.Load();
categoryViewSource.Source = _context.Categories.Local;
}现在我的问题很简单:如果我想加载一些类别,而不是所有的类别,该怎么办?我希望一些用户能够更新特定的类别,因此网格将只加载这些类别。
发布于 2015-04-30 08:12:18
你需要使用过滤器。
categoryViewSource.View.Filter = item =>
{
Categories category = item as Categories; // hope this are your items
return category.Id > 10; // or put whatever condition you want
};上面的方法只返回Id >10的类别(仅以Id为例)。
还请检查此链接:http://social.technet.microsoft.com/wiki/contents/articles/26673.aspx
发布于 2015-04-30 08:25:12
如果您想使用linq,可以这样做:
ObservableCollection<Model> collection = new ObservableCollection<Model>();
ObservableCollection<Model> filteredCollection = new ObservableCollection<Model>(from item in collection where item.ID >0 && item.ID < 10 orderby item.ID select item);当我没有弄错的时候,您可以直接将观察到的数据绑定到wpf数据集的ItemsSource属性。
如果您想了解更多关于linq的信息,我建议您阅读https://msdn.microsoft.com/de-de/library/bb397933.aspx
https://stackoverflow.com/questions/29962151
复制相似问题