2016-12-19 131 views
0

我有一個usercontrol,其中有一個列表框和一個列表視圖控件。對於列表視圖我已綁定TrafficManager型類的observablecollection,如下所示:使用MVVM更新列表視圖可觀察集合

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

我已綁定這對的ItemSource列表視圖。 現在我的要求是選擇列表框項目,我需要篩選列表視圖的一些項目。爲此,我使用linq從列表視圖中獲取所需的行並將其添加到列表視圖集合中。添加之前,我做了一個listview Collection​​,然後添加到該collection.But現在的問題是在列表框中選擇另一個項目我需要再次使用linq的原始listview內容進行過濾。這裏一旦​​執行原始的可觀察收集數據消失。如何維護listview的原始可觀察集合數據"TrafficCollection"的備份。記得我只有一個觀點。無論如何要做到這一點?請告訴我。

+0

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

+0

你堅持原來的項目,而不是把它們扔掉。你的虛擬機可以有多個集合保存對同一項目的引用。 – Will

+0

謝謝,但你可以讓我知道如何持有對同一課程項目的引用。如果我通過添加或刪除修改項目不會引用集合也得到修改? – santhosh

回答

0

可以使用CollectionViewSource過濾,是指here

SO鏈接:Trigger Filter on CollectionViewSource

這不會清除原來的集合。

+0

謝謝。但我使用可觀察的收藏列表視圖和其在WPF中。 – santhosh

+0

是的,它是WPF而不是List,你可以使用ObservableCollection。 – WPFUser

+0

@santhosh看到更新的SO鏈接。它也涵蓋了MVVM的實現 – WPFUser