我是wpf,Entity Framework 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;
}
现在我的问题非常简单:如果我想加载某些类别,而不是所有类别,该怎么办?我希望某些用户能够更新特定的类别,因此网格只会加载这些类别。
答案 0 :(得分:1)
如果您想使用linq,可以这样试试:
foo :: Int -> Int -> Int
foo 0 _ = 0
foo _ 1 = 1
foo n m = foo (m-1) n
当我没有弄错的时候,您可以将observablecollection直接绑定到wpf数据网格的ItemsSource属性。
如果您想了解更多关于linq的信息,我建议您阅读https://msdn.microsoft.com/de-de/library/bb397933.aspx
答案 1 :(得分:0)
您需要使用过滤器。
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