WP7 - привязать список к отфильтрованной коллекции ObservableCollection - PullRequest
0 голосов
/ 23 июня 2011

У меня есть ObservableCollection, и это определение MyObject:

public class MyObject : INotifyPropertyChanged  
{
    private bool favourite; 
    public event PropertyChangedEventHandler PropertyChanged;   

    public bool Favourite
    {
        get
        {
            return favourite; 
        }
        set
        {
            favourite = value;

            var eh = PropertyChanged;
            if (eh != null)
            {
                eh(this, new PropertyChangedEventArgs("Favourite"));
            }
        }
    }

    public bool Name { get; set; }
}

Я хочу привязать эту коллекцию к списку WP7, но только к элементам со свойством Favorite = true. Как мне привязать список к коллекции? Учтите, что ObservableCollection, которая является глобальной переменной, получает изменения (Favorite value) из других частей приложения.

Я попробовал это безуспешно (когда изменяется любимое свойство одного элемента, список не обновляется):

ObservableCollection<Channel> myChannels = 
    (((App)Application.Current).FavouriteChannels
                               .Where(f=>f.Favorito == true)
                               .OrderBy(o => o.SortIndex)
                               .ToList()).ToObservableCollection<Channel>();

this.listFavoritos.ItemsSource = myChannels;

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

В последней строке вы должны установить ItemSource of ListBox в myChannels.

this.listFavoritos.ItemSource = myChannels;
1 голос
/ 23 июня 2011

Самое простое решение - создать отдельную коллекцию, которая будет содержать только нужные элементы.

Кроме того, вы можете использовать CollectionViewSource .

...