| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Привязка TreeView к дереву |
| Автор: zhiday 30.11.2011, 13:12 | ||||
| Добрый день, вопрос в следующем: Допустим имеется класс:
Где то в коде из этих узлов создаётся что то вроде дерева:
И вот как мне сделать привязку в XAMLе, к этому Root узлу, что бы мне в TreeView построилось дерево? Заранее спасибо. |
| Автор: Gvozdin 30.11.2011, 13:35 |
| http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx |
| Автор: GRemlin87 21.12.2011, 06:30 | ||||||
хотел бы немного развить тему, допустим имеем класс описанный выше.но это только model из него делаем viewModel
для привязки к treeview использую такой класс
и наконец XAML
а теперь собственно проблема. Такая привязка на самом деле изменяет свойство IsSelected в обьекте CurentNode, но он сам об этом не узнаёт и поэтому не получается его изменить, в то же время если изменить свойство Name через TextBox то в MainWindowViewModel CurrentNode метод get срабатывает, а вот если меняем IsSelected то ничего не происходит. Подскажите в чём ошибка |
| Автор: Gvozdin 21.12.2011, 22:12 |
| 1. "Такая привязка на самом деле изменяет свойство IsSelected в обьекте CurentNode, но он сам об этом не узнаёт" Q. Я так понимаю IsSelected изменяется как и задумывалось, о чем он сам(NodeViewModel) не узнает? 2. "если изменить свойство Name через TextBox то в MainWindowViewModel CurrentNode метод get срабатывает, а вот если меняем IsSelected то ничего не происходит" Q. Что не происходит при изменении IsSelected? И что должно происходить? Давайте поконкретнее. |
| Автор: GRemlin87 22.12.2011, 04:24 |
| Возможно я конечно не правильно понимаю механизм NotifyPropertyChaged, но как по моему это должно происходить. Мы через TextBox к которму привязано свойство Name обьекта CurrentNode изменяем это самое свойство и создаём событие PropertyChanged("Name") из за этого события все другие обьекты к которому этот CurrentNode привязан в нашем случае это treeView узнают что он изменился и заного запрашивают его, праверял ставил брекпоинт в метод get CurrentNode всё работает как надо, Но почему когда я изменяю свойство isSelected CurrenNode заного не запрашивают. |
| Автор: Gvozdin 30.12.2011, 23:25 |
| ни кто не гарантирует ни каких определенных реакций на PropertyChanged. С чего кому-то запрашивать CurrentNode при изменении свойства у какого-то объекта, пусть даже того что в CurrentNode? Вызовите OnPropertyChanged("CurrentNode") и скорее всего его запросят. |