如何过滤我的DataGrid项目,如MS Access过滤器工作(只需通过鼠标选择单元格的一部分,然后按“过滤器”按钮)?
我有带2个命令的ViewModel MyViewModel(Filter和ClearFilter) 和ObservableCollection 我有方法GetItems(...);
的模型在DataGrid CellEditEnding事件中我保存选定的路径和列名:
_selectedColumn = e.Column;
if (e.EditingElement is TextBox)
_selectedText = (e.EditingElement as TextBox).SelectedText;
所以我有两个参数:我的T对象的属性名称,需要对其进行排序,并过滤值(两者都是字符串类型)。
我应该如何更改Model的方法GetItems,它会起作用。 方法Model.GetItemws使用EntityFramework从数据库中查询项目。 如何应用此查询我的过滤器以及如何构建此查询?一些动态LINQ / Expression
var items = EFQuery().**Where(myFilter)**.ToList();
我应该在哪里以及如何创建这个myFilter?
答案 0 :(得分:0)
您可以这样编写过滤器lambda:
.Where(x => x.GetType().GetProperty(AA).GetValue(x).ToString().Contains(BB))
其中AA是变量,其中包含选定的列名
BB是一个包含过滤器文本的变量。
限制:您的属性AA必须是覆盖了ToString方法的字符串或类