Silverlight 4.0 在Silverlight中使用MVVM/XAML中的CollectionViewSource进行过滤

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"); 所以我找到了所有的商店,里面有他们的联系人和地址之类的东西。现在我想过滤商店的联系人,但我们

我有4张桌子:

  • Stores=>StoreID,AddressID
  • Contacts=>ContactID、StoreID、SignatureID、
  • 名称=>名称ID
  • 地址=>AddressID
  • 在实体查询中,我在获取存储的所有详细信息时使用了Include

    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?然后可以相应地创建一个过滤器。