在我的视图中,我有一个ObservableCollection<MyObject>
当前绑定到 ListBox 的。MyObject
有一个枚举属性,我们将其称为 On 和 Off(以及其他属性)。使用绑定,有没有办法过滤集合并只显示打开或关闭的项目?
问问题
708 次
2 回答
3
您应该看看CollectionViewSource
它的过滤功能。
如果您想在纯 MVVM 中进行过滤,您可以让您的视图模型公开一个 type 属性ICollectionView
,应用您想要的任何过滤器,然后从 XAML 绑定到该属性。
视图模型:
public ICollectionView MyCollectionView { get; set; }
public ViewModel()
{
var items = new List<string>
{
"Apple",
"Orange"
};
MyCollectionView = CollectionViewSource.GetDefaultView(items);
// Will only display items starting with "A".
MyCollectionView.Filter = item => ((string)item).StartsWith("A");
}
XAML:
<ListBox ItemsSource="{Binding MyCollectionView}"/>
于 2013-06-01T00:09:54.870 回答
2
您可能需要考虑一个集合视图,或者在视图模型中自己执行过滤。
于 2013-06-01T00:09:21.120 回答