【发布时间】:2017-04-26 06:20:16
【问题描述】:
我是 MVVM 和 WPF 的新手,我想知道是否有一种方法可以使用 MVVM 模式为 ComboBox 实现搜索框。有没有办法做类似this post 的事情,不是那么花哨,而是一个简单的组合框,允许您使用 MVVM 模式编写和过滤项目。我在这里看到了很多在代码隐藏中实现过滤器的示例,但没有一个以 MVVM 方式实现。
非常感谢。
【问题讨论】:
我是 MVVM 和 WPF 的新手,我想知道是否有一种方法可以使用 MVVM 模式为 ComboBox 实现搜索框。有没有办法做类似this post 的事情,不是那么花哨,而是一个简单的组合框,允许您使用 MVVM 模式编写和过滤项目。我在这里看到了很多在代码隐藏中实现过滤器的示例,但没有一个以 MVVM 方式实现。
非常感谢。
【问题讨论】:
我假设您的 Combobox 项绑定到您提到的 MVVM 的某种集合?
如果是这种情况,那么您可以查看属于 System.Windows.Data 命名空间的 CollectionView 和 CollectionViewSource 类。
这些类有一个 Filter 属性,可以设置该属性以返回可以绑定到您的 Combobox 的集合的过滤视图。
我在一个 MVVM 应用程序中使用它来将过滤器应用于 ListView,但该原理也应该适用于您的 Combobox。
请查看 Microsoft 的官方 CollectionView 和 CollectionViewSource 文档以了解更多信息。
this StackOverflow 线程中也讨论了CollectionViewSource。
【讨论】: