在wpf中刷新可观察字典,列表框

时间:2011-01-01 15:01:22

标签: c# wpf dictionary observable

我在WPF应用程序中的列表框控件上绑定通用可观察字典。我得到每5秒新的新数据作为可观察的字典。

我想在wpf app中使用这个新词典列表框进行刷新。

我的洗礼是:

//this dic is bind on listbox
        private MyObservableDictionary<string, Friend> _friends;

//new data
        private MyObservableDictionary<string, Friend> _freshFriends;

....

//get data from server
            _freshFriends = _service.LoadFriends(Account);


            _friends.Clear();

//refresh dic
            foreach (var freshFriend in _freshFriends)
            {
                _friends.Add(freshFriend);
            }

我的洗礼效果很好,但存在任何简单而美好的方式?感谢您的想法。

2 个答案:

答案 0 :(得分:1)

实施INotifyPropertyChanged(它使任何“可观察的”)因此WPF知道你何时直接分配给朋友列表。换句话说,让你的朋友列出一个属性而不是一个字段,并在set块上激活PropertyChanged委托:)

希望有所帮助,阅读链接,你会在那里找到更多信息。如果您有任何问题,请发表评论。

答案 1 :(得分:1)

由于您拥有自己的MyObservableDictionary,因此您可以为其实现AddRange函数,只需将其调用为:_friends.AddRange(_freshFriends);如果您想添加其他集合,可以减少代码重复同样。