【发布时间】:2010-12-27 07:56:05
【问题描述】:
如何像 MS Access 过滤器一样过滤我的 DataGrid 项目(只需用鼠标选择单元格的某些部分并按“过滤器”按钮)?
我有带有 2 个命令(Filter 和 ClearFilter)的 ViewModel MyViewModel 和 ObservableCollection 我有方法 GetItems(...);
在 DataGrid CellEditEnding 事件中我保存选定的路径和列名:
_selectedColumn = e.Column;
if (e.EditingElement is TextBox)
_selectedText = (e.EditingElement as TextBox).SelectedText;
所以我有 2 个参数:我的 T 对象的属性名称,需要对其进行排序,以及过滤值(都是 typeof String)。
我应该如何更改模型的方法 GetItems,它会起作用。 方法 Model.GetItemws 使用 EntityFramework 从数据库中查询项目。 如何将我的过滤器应用于此查询以及如何构建此查询?一些动态的 LINQ/Expression
var items = EFQuery().**Where(myFilter)**.ToList();
我应该在哪里以及如何创建这个 myFilter?
【问题讨论】:
-
This 可能会有所帮助。
-
谢谢。它有助于 PredicateBuilder 和 LinqKit
标签: c# mvvm datagrid entity-framework-4 dynamic-linq