WPF MVVM - Обновить Treeview - PullRequest
       14

WPF MVVM - Обновить Treeview

1 голос
/ 11 августа 2011

Я создал Treeview в WPF MVVM (Project использует MVVM Light).

Когда я добавляю данные в DataTemplate Treeview, я хочу перезагрузить весь TreeView.Для этого я отправляю сообщение из моей модели представления ввода данных в мою модель представления дерева.

Хотя сообщение получено, дерево не обновляется.Я снова вызвал LoadChildren на каждом узле и также использовал RaisePropertyChanged, но данные не обновлялись.

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

TreeView привязан к иерархической коллекции в вашем ViewModel и имеет имя свойства, например, TreeViewData.Предполагая, что ViewModel реализует INotifyPropertyChanged, просто вызовите обработчик PropertyChanged для свойства TreeViewData.Это полностью обновит TreeView.

1 голос
/ 11 августа 2011

Мой ответ основан на том факте, что вы используете Mvvm light, поскольку вы не предоставили код, я просто укажу очевидное, и это может решить ваши проблемы.

Реализует ли ваша модель представления интерфейс ViewModelBase?(который реализует INotifiedPropertyChanged)

Я никогда не использовал TreeViews, но предполагая, что он использует коллекцию в качестве своей таблицы данных, вы должны вызывать RaisePropertyChanged для коллекции всякий раз, когда вы добавляете / удаляете элемент, а также всякий раз, когда элемент изменяется.Вызов RaisePropertyChanged только в «наборе» коллекции будет недостаточным.

...