2016-12-19 8 views
0

私はusercontrolを持っています。リストボックスとリストビューコントロールが1つあります。以下に示すように、リストビューのために私はタイプTrafficManagerクラスのobservablecollectionを結合した:MVVMを使用してリストビューの観察可能なコレクションを更新

private static ObservableCollection<TrafficManager> _trafficCollection; 
      public ObservableCollection<TrafficManager> TrafficCollection 
      { 
       get { return _trafficCollection; } 
       set 
       { 
        _trafficCollection = value; 
        OnPropertyChanged("TrafficCollection"); 
       } 
      } 

私は、リストビューのitemsourceにこれを結合しました。 私の要件はリストボックス項目の選択です。リストビューのいくつかの項目をフィルタリングする必要があります。そのために、私はlinqを使ってリストビューから目的の行を取得し、それをリストビューコレクションに追加しました。追加する前に、リストビューコレクション​​を行った後、そのコレクションに追加しました。しかし、問題はリストボックス内の別のアイテムの選択です。元のリストビューの内容が必要になり、再びlinqを使用してフィルタリングを実行します。ここで、​​が元の観測可能な収集データを実行すると、データは消滅します。リストビューの元の観測可能な収集データ"TrafficCollection"のバックアップをどのように維持しますか?私は1つのビューしか持っていないことを思い出してくださいこれを行うためにとにかくありますか?私にお知らせください。

+0

http://stackoverflow.com/questions/14497506/collectionviewsource-how-to-filter-data – WPFUser

+0

元のアイテムを捨てずに持ちます。あなたのVMは、同じアイテムへの参照を保持する複数のコレクションを持つことができます。 – Will

+0

ありがとうございますが、同じクラスアイテムへの参照を保持する方法を教えてください。追加または削除によってアイテムを変更しても、参照コレクションも変更されません。 – santhosh

答えて

0

あなたはhere

SOリンク参照してください、CollectionViewSourceフィルタリングを使用することができます。Trigger Filter on CollectionViewSource

この意志は明らかではない元のコレクションを。

+0

ありがとうございます。しかし、私は、リストビューとそのWPFでの観測可能なコレクションを使用します。 – santhosh

+0

はいこれはWPFで、ListではなくObservableCollectionを使用できます。 – WPFUser

+0

@santhosh更新されたSOのリンクを参照してください。 MVVMの実装もカバーします – WPFUser

関連する問題