2011-06-23 9 views
0

にリストボックスをバインドしますWP7 - 私はのObservableCollectionを持っており、これはMyObjectに定義されるフィルタのObservableCollection

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のリストボックスには、このコレクションをバインドしたいのですが、プロパティのお気に入りを持っている要素のみ=真。リストボックスをコレクションにどのようにバインドする必要がありますか? ObservableCollection(グローバル変数)がアプリケーションの他の部分から変更(Favorite value)を受け取ることを考慮してください。

私は(1つの要素の変更、リストボックスが更新されないのときの好きなプロパティ)成功せず、これを試してみました:

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

this.listFavoritos.ItemsSource = myChannels; 

任意のアイデア?

答えて

3

最後の行では、ListBoxのItemSourceをmyChannelsに設定する必要があります。

this.listFavoritos.ItemSource = myChannels; 
1

最も簡単な解決策は、必要なアイテムだけを含む海洋コレクションを作成することです。

また、CollectionViewSourceを使用することもできます。

関連する問題