Silverlight 4.0 在Silverlight中使用MVVM/XAML中的CollectionViewSource进行过滤
我有4张桌子:Silverlight 4.0 在Silverlight中使用MVVM/XAML中的CollectionViewSource进行过滤,silverlight-4.0,mvvm,collectionviewsource,Silverlight 4.0,Mvvm,Collectionviewsource,我有4张桌子: Stores=>StoreID,AddressID Contacts=>ContactID、StoreID、SignatureID、 名称=>名称ID 地址=>AddressID 在实体查询中,我在获取存储的所有详细信息时使用了Include ObjectContext.Stores.Include("Address").Include("Contacts.Designation"); 所以我找到了所有的商店,里面有他们的联系人和地址之类的东西。现在我想过滤商店的联系人,但我们
ObjectContext.Stores.Include("Address").Include("Contacts.Designation");
所以我找到了所有的商店,里面有他们的联系人和地址之类的东西。现在我想过滤商店的联系人,但我们的域服务Linq不允许使用Include进行过滤。它包括所有的数据。所以我想使用CollectionViewSource来过滤我的子数据
在UI中,我有一个用于存储信息的列表框,在该列表框->中,我还有一个用于存储联系人的列表框,我希望在加载时根据某些条件对这些联系人进行筛选
我不知道如何使用MVVM或直接在XAML中实现这一点。但是使用MVVM做得更好
谁能帮我解决这个问题
谢谢你的时间和帮助 您需要首先获得源项的默认
ICollectionView
你可以这样做
var collectionView = CollectionViewSource.GetDefaultView(collectionToFilter);
接下来,创建一个过滤器委托,如下所示
collectionView.Filter = delegate(object item){return some boolean expression;};
希望这对Silverlight有所帮助——没有GetDefaultView方法。在SilverlightFair中,有没有什么好的例子可以在ViewModel中进行过滤?很抱歉,我想在WPF中进行过滤。。。那么,为什么不创建一个CollectionViewSource,将其源作为您的集合并绑定到列表框到collectionsource.view?然后可以相应地创建一个过滤器。