使用MVVM更新List视图可观察集合

时间:2016-12-19 11:59:17

标签: wpf mvvm collections observable

我有一个usercontrol,其中有一个列表框和一个列表视图控件。对于Listview,我绑定了observablecollectionTrafficManager,如下所示:

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

我已将此绑定到列表视图的itemsource。 现在我的要求是选择列表框项目,我需要过滤列表视图的一些项目。为此,我使用linq从列表视图中获取所需的行,并将其添加到列表视图集合中。在添加之前我做了一个listview Collection TrafficCollection.Clear(),然后添加到该集合。但现在问题是在列表框中选择另一个项目我再次需要原始列表视图内容以再次使用linq进行过滤。一旦TrafficCollection.Clear()执行,原始可观察集合数据就会消失。如何维护listview的原始可观察集合数据"TrafficCollection"的备份。记住我只有一个观点。反正有没有这样做?请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以使用CollectionViewSource过滤,请参阅here

SO链接:Trigger Filter on CollectionViewSource

这不会清除原始收藏品。