![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Создал класс:
Использую экземпляр этого класса в качестве поля класса, производного от Window:
В окне размещаю CheckBox, который связываю с полем IsChecked. Хочу реализовать двустороннюю связь: т.е. чтобы изменение значения CheckBox оказывало действие на поле IsChecked и наоборот: программное изменение поля IsChecked влияло и на значение CheckBox. Код:
Однако получаю лишь одностороннюю связь - при изменении значения объекта CheckBox значение поля IsChecked меняется. но ежели изменить значение IsChecked программно, то значение объекта CheckBox автоматом не изменится в соответствии с произведенным изменением. Видать чего-то я недопонимаю... Как реализовать двустороннюю связь? |
||||||
|
|||||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Ну а как по твоему Binding должен узнать об изменении поля myClass?
Ему нужно предоставить один из поддерживаемых им вариантов: INotifyPropertyChanged, либо (рекомендую) DependencyProperty. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Судя по всему изучаете по книжке Петцольда Applications = Markup + Code.... Имхо не очень удачная книжка... WPF Unleashed by Adam Nathan понравилась больше... -------------------- СУВ, Partizan. |
|||
|
||||
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
она самая. есть еще и Мак-Дональд, но Петцольд мне как-то более понятен зачастую. Хотя опечаток хватает и там и там... Добавлено через 5 минут и 8 секунд
ДепенденсиПроперти, как я понял из прочтенного у Петцольда, удобно юзать в классах, посредством которых реализуется UI. А мне нужно сие выполнить применительно к классу, который является образом некой сущности (не визуальной). Посему, видимо, INotifyPropertyChanged - единственный вариант. Ранее я его не юзал, щас посмотрю инфу на эту тему. сиба. |
||||||
|
|||||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Ну не знаю, о чем там Петзольд писал... Считаю что если удобно, то юзай.
DependencyObject не далеко от object стоит: DependencyObject : DispatcherObject : Object так что я не понимаю какая связь с UI у него. Да и к тому же, ты ведь с CheckBox'ом работаешь, то есть свойство класса связано с UI. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| WolfTheGrey |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 21.1.2009 Где: forum.vingrad.ru Репутация: 2 Всего: 2 |
а еще можно при создании нового экземпляра класса ему в конструктор вкладывать такую строчку: Application.Current.MainWindow
тогда через экземпляр класса можно будет обратиться к классу родителю.
да и не трожте Петзольда. Это сообщение отредактировал(а) WolfTheGrey - 8.5.2009, 03:58 |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Нет, плохая это идея. Да и к теме топика не относится. Вопрос про связывание данных, а не про то как моно обращаться к форме и ее контролам. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |