【问题标题】:WPF DataGrid filtering for Caliburn.Micro用于 Caliburn.Micro 的 WPF DataGrid 过滤
【发布时间】:2012-07-27 11:55:06
【问题描述】:

我有一个使用 Caliburn.Micro 的 WPF 应用程序。 DataGrid 绑定到 ViewModel 中的对象集合。如果可能的话,您能否建议一种过滤 DataGrid 内容的方法?

谢谢。

【问题讨论】:

标签: wpf datagrid filtering caliburn.micro


【解决方案1】:

在视图模型中创建一个新属性:

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”这样的固定值列表。
  • 您可以创建多个过滤器事件处理程序(对于您要对其应用过滤器的任何字段)。因此,当用户选择了 Customer 类型的值时,将处理程序应用于 Customer 类型的字段(例如 += new FilterEventHandler(ShowRecordsByCustomer);)。如果他选择 Orders 类型的值,请为该类型的字段应用过滤器。
  • 你好。你有没有找到方法来做到这一点。我可能会对代码示例感兴趣
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 2013-03-12
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2013-06-20
相关资源
最近更新 更多