我在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);
}
我的洗礼效果很好,但存在任何简单而美好的方式?感谢您的想法。
答案 0 :(得分:1)
实施INotifyPropertyChanged(它使任何“可观察的”)因此WPF知道你何时直接分配给朋友列表。换句话说,让你的朋友列出一个属性而不是一个字段,并在set
块上激活PropertyChanged委托:)
希望有所帮助,阅读链接,你会在那里找到更多信息。如果您有任何问题,请发表评论。
答案 1 :(得分:1)
由于您拥有自己的MyObservableDictionary
,因此您可以为其实现AddRange
函数,只需将其调用为:_friends.AddRange(_freshFriends);
如果您想添加其他集合,可以减少代码重复同样。