Обновить наблюдаемый словарь, список в wpf - PullRequest
0 голосов
/ 01 января 2011

Я связываю универсальный наблюдаемый словарь в элементе управления списком в приложении WPF.Я получаю каждые 5 секунд новые свежие данные в виде наблюдаемого словаря.

Я бы хотел обновить этот новый список словаря в приложении wpf.

Мое решение:

//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 ]

1 голос
/ 01 января 2011

Поскольку у вас есть собственный MyObservableDictionary, вы можете реализовать для него функцию AddRange и просто вызывать ее так: _friends.AddRange(_freshFriends); Это может уменьшить дублирование кода, если вы захотите добавить и другие коллекции.

1 голос
/ 01 января 2011

Реализация INotifyPropertyChanged (он делает что-либо "наблюдаемым"), чтобы WPF знал, когда вы напрямую назначаете список друзей.Другими словами, сделайте так, чтобы ваши друзья перечислили свойство вместо поля, и запустите делегат PropertyChanged в блоке set:)

Надеюсь, это поможет, прочитайте ссылку, в которой вы найдете больше информации.Прокомментируйте, если у вас есть какие-либо вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...