Silverlight绑定与过滤

时间:2011-09-23 21:01:16

标签: binding silverlight-4.0 filtering

我目前正在尝试在Silverlight 4中找到一个绑定解决方案。

我有一个可观察的项目集合。我想将它绑定到ComboBox但只显示符合特定条件的项目。例如group ==“Test Group”。我已经尝试了很多方法来完成这项工作,但没有取得任何成功。

1 个答案:

答案 0 :(得分:0)

过去我在VM上的暴露属性中使用了LINQ,例如:

    /// <summary>
    /// Get filtered results(by location)
    /// </summary>
    public ObservableCollection<SearchResultData> FilteredResults        {
        get
        {
            return new ObservableCollection<SearchResultData>(Results.Where(p => p.LocationId == CurrentLocation.Id));
        }
    }

使用这种方法,您需要在LINQ中的基础集合发生变化时提供通知,例如:

    public ObservableCollection<SearchResultData> Results
    {
        get { return _results; }
        set
        {
            _results = value;
            NotifyOfPropertyChange(() => Results);
            NotifyOfPropertyChange(() => FilteredResults);
        }
    }