繁体   English   中英

Collectionviewsource过滤方法

[英]Collectionviewsource filter methods

我为我的应用程序遵循MVVM模型,我有一个文本框,用作过滤集合的输入。 我了解使用lambda表达式的observablecollection过滤器,但我无法理解collectionviewsource方法。 我如何使用此实现collectionviewsource方法。

这是我的viewmodel类:

private ObservableCollection<SPFetchCREntity> _CRmappings2 = new ObservableCollection<SPFetchCREntity>();
public ObservableCollection<SPFetchCREntity> CRmappings2
{
    get { return _CRmappings2; }
    set
    {
        _CRmappings2 = value;
        RaisePropertyChanged("CRmappings2");
    }
}

public ICollectionView AllCRSP


{ get; private set;}



public void UpdatePopList()
{
   CRmappings2 = new ObservableCollection<SPFetchCREntity>(crentities.Where(p => p.MU_Identifier == selectmu.ToString()).ToList()); 
}

绑定到ICollectionView并过滤此一个:

public void UpdatePopList()
{
    CRmappings2 = new ObservableCollection<SPFetchCREntity>(crentities.ToList());
    AllCRSP = CollectionViewSource.GetDefaultView(CRmappings2);
    AllCRSP.Filter = obj =>
    {
        SPFetchCREntity entity = obj as SPFetchCREntity;
        return entity != null && entity.MU_Identifier == selectmu.ToString();
    };
}

private string _selectmu;
public string Selectmu
{
    get { return _selectmu; }
    set { _selectmu = value; AllCRSP.Refresh(); } //<-- refresh the ICollectionView whenever the selectmu property gets set or when you want to refresh the filter
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM