Noi*_*ves 1 c# linq wpf user-controls
大多数WPF数据网格控件都具有内置功能,可以过滤显示的数据.我对使用该功能感兴趣,但与数据网格使用断开连接.
我希望找到一个用户控件,它将返回一个Expression<Func<T, bool>>我可以在LINQ查询中使用的控件.有谁知道这样的用户控件?
在WPF中,使用a执行内置控件的过滤CollectionView.这CollectionView被赋值的ItemsSource集散控制(源自什么的ItemsControl).
从.NET 3.5 SP1开始,CollectionView类上的filter属性采用类型的委托Predicate<object>.Predicate<object>似乎基本上是相同的Func<object, bool>,但两者不是直接兼容的.您应该能够轻松创建Func<object, bool>委托以包装Predicate<object>委托.
public static Func<object, bool> GetFuncFromPred(Predicate<object> pred)
{
return (obj => pred.Invoke(obj));
}
Run Code Online (Sandbox Code Playgroud)
您可以在其中的过滤器上调用它CollectionView,然后在LINQ查询中使用它们.
例:
List<object> list = GetList();
CollectionView colView = new CollectionView(list);
ListBox lb = GetListBox();
lb.ItemsSource = colView;
colView.Filter = GetFilter();
var filteredItems = list.Where(GetFuncFromPred(colView.Filter));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3421 次 |
| 最近记录: |