我正在尝试在Silverlight 4中找到一个绑定解决方案。
我有一个可观察的项目集合。我想将其绑定到ComboBox,但只显示符合特定条件的项目。例如group == "Test group "。我已经尝试了很多方法来做这件事,但没有任何成功。
过去我曾在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);
}
}