WPF DataGrid过滤Caliburn.Micro
我有一个使用Caliburn.Micro的WPF应用程序。 DataGrid绑定到ViewModel中的对象集合。你可以请建议一种方法来过滤DataGrid的内容,如果可能的话,任何领域?WPF DataGrid过滤Caliburn.Micro
谢谢。
在视图模型创建一个新的属性:
private ICollectionView fooView;
public ICollectionView FooView
{
get
{
return this.fooView;
}
set
{
this.fooView = value;
NotifyPropertyChanged("FooView");
}
}
然后你填充绑定采集后:
// Populate collection
BindableCollection collectionName = this.PopulateCollection();
FooView = CollectionViewSource.GetDefaultView(collectionName);
您认为更改绑定从collectionName
到FooView
。
CollectionView类提供了对数据进行排序/过滤/分组的方法。在你的情况下How to: Filter Data in a View。过滤器代码将根据您的型号和要求而有所不同。
非常感谢。虽然我有这个问题。据我所知,这种方法让我可以像“仅显示未填写的订单”或“显示所有订单”等那样进行过滤,但我需要让用户选择例如客户想要按客户过滤时,显示客户选择的所有记录。我们不能像所提供的例子那样使用逻辑(例如return(order.Filled ==“No”);),因为Customer不是固定的值列表,如“Yes”或“No”。 – 2012-07-27 12:48:10
您可以创建多个过滤器事件处理程序(针对您要应用过滤器的任何字段)。因此,当用户选择Customer类型的值时,应用Customer类型的字段的处理程序(例如,'+ = new FilterEventHandler(ShowRecordsByCustomer);')。如果他选择了Orders类型的值,请为该类型的字段应用过滤器。 – ShadeOfGrey 2012-07-27 13:00:27
我明白了,谢谢! – 2012-07-27 13:02:23
你是绑定到集合(List,ObservableCollection)还是CollectionView? http://msdn.microsoft.com/en-us/library/system.windows.data.collectionview.aspx – ShadeOfGrey 2012-07-27 12:02:03
它是BindableCollection。 – 2012-07-27 12:04:08