![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
zhiday |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.10.2011 Репутация: нет Всего: нет |
Добрый день, вопрос в следующем:
Допустим имеется класс:
Где то в коде из этих узлов создаётся что то вроде дерева:
И вот как мне сделать привязку в XAMLе, к этому Root узлу, что бы мне в TreeView построилось дерево? Заранее спасибо. |
||||
|
|||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
--------------------
http://gvozdin.ru |
|||
|
||||
GRemlin87 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.2.2011 Репутация: нет Всего: нет |
хотел бы немного развить тему, допустим имеем класс описанный выше.но это только model из него делаем viewModel
для привязки к treeview использую такой класс
и наконец XAML
а теперь собственно проблема. Такая привязка на самом деле изменяет свойство IsSelected в обьекте CurentNode, но он сам об этом не узнаёт и поэтому не получается его изменить, в то же время если изменить свойство Name через TextBox то в MainWindowViewModel CurrentNode метод get срабатывает, а вот если меняем IsSelected то ничего не происходит. Подскажите в чём ошибка Это сообщение отредактировал(а) GRemlin87 - 21.12.2011, 06:32 |
||||||
|
|||||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
1. "Такая привязка на самом деле изменяет свойство IsSelected в обьекте CurentNode, но он сам об этом не узнаёт"
Q. Я так понимаю IsSelected изменяется как и задумывалось, о чем он сам(NodeViewModel) не узнает? 2. "если изменить свойство Name через TextBox то в MainWindowViewModel CurrentNode метод get срабатывает, а вот если меняем IsSelected то ничего не происходит" Q. Что не происходит при изменении IsSelected? И что должно происходить? Давайте поконкретнее. --------------------
http://gvozdin.ru |
|||
|
||||
GRemlin87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.2.2011 Репутация: нет Всего: нет |
Возможно я конечно не правильно понимаю механизм NotifyPropertyChaged, но как по моему это должно происходить. Мы через TextBox к которму привязано свойство Name обьекта CurrentNode изменяем это самое свойство и создаём событие PropertyChanged("Name") из за этого события все другие обьекты к которому этот CurrentNode привязан в нашем случае это treeView узнают что он изменился и заного запрашивают его, праверял ставил брекпоинт в метод get CurrentNode всё работает как надо, Но почему когда я изменяю свойство isSelected CurrenNode заного не запрашивают.
|
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
ни кто не гарантирует ни каких определенных реакций на PropertyChanged.
С чего кому-то запрашивать CurrentNode при изменении свойства у какого-то объекта, пусть даже того что в CurrentNode? Вызовите OnPropertyChanged("CurrentNode") и скорее всего его запросят. --------------------
http://gvozdin.ru |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |