Обвязка Silverlight с фильтрацией - PullRequest
0 голосов
/ 24 сентября 2011

Я сейчас пытаюсь найти решение для связывания в Silverlight 4.

У меня есть наблюдаемая коллекция предметов.Я хочу связать это с ComboBox, но отображать только те элементы, которые соответствуют определенному условию.Например, группа == «Группа тестирования».Я попробовал немало способов сделать эту работу, но безуспешно.

1 Ответ

0 голосов
/ 28 сентября 2011

В прошлом я использовал 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);
        }
    } 
...