2011-09-23 40 views
0

我目前正试图弄清楚在Silverlight 4中的绑定解决方案。Silverlight绑定与过滤

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

+0

您认为哪种方式最有可能奏效?包括你试过的代码? – AnthonyWJones

回答

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); 
     } 
    }