![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
Compositum |
|
||||||||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Имеется некий тестовый класс:
Очередной фрагмент:
Всё работает как нужно - при изменении свойства родительского объекта, вложенный объект так же меняет своё свойство, и делает это до тех пор, пока ему не будет назначено значение индивидуально. Т.е. с этим порядок. Но... Предположим, что изменив свойство дочернего элемента я решу вернуть обратно его привязку к свойству родительского. Как тогда быть? Пытался реализовать это путем возвращения значения по умолчанию:
А так же приравниванием свойства дочернего свойству родительского:
Однако не срабатывает ни тот ни др. способ. Как это решается? |
||||||||
|
|||||||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Compositum, решается либо созданием Binding-а, либо использованием AttachedProperty.
-------------------- СУВ, Partizan. |
|||
|
||||
Compositum |
|
|||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
биндинг-биндингом. интересно применительно именно к DependencyProperty. т.е. я так понял, что единожды изменив свойство дочернего, вернуть его подчинение родительскому уже никак? |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Compositum, я ж написал про AttachedProperty
-------------------- СУВ, Partizan. |
|||
|
||||
Compositum |
|
|||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
насколько я понял из прочитанного у Петцольда ( WPF стр 164)., AttachedProperty - это те же самые DependencyProperty, только они регистрируются иначе (DependencyProperty.RegisterAttached). Само по себе присоединенное свойство (AttachedProperty) предназначено для того (как я опять же понимаю), чтобы класс, реализующий данное свойство не был обязан быть производным от DependencyObject. А во всем остальном ведет себя как обычный DependencyProperty. А если так, то как мне сие поможет в решении моего вопроса? |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Compositum, скажу сразу - книжка Петцольда получилась, мягко говоря, "так себе"...
Не совсем так...Attached Properties нужны прежде всего для более качественного управления наследованием свойств(Property Inheritance). Вообще говоря, в вашем случае Attached Properties и не нужны...достаточно простого вызова ClearValue у объекта cl2 -------------------- СУВ, Partizan. |
|||
|
||||
Compositum |
|
||||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
ClearValue говорите... хм. сейчас не могу проверить, вечером дома попробую. Спасибо! А насчет книги Петцольда - конечно не все раскрыто так, как того бы хотелось, но все же в сравнении с Мак-Дональдом те же DependencyProperty у Петцольда изложены гораздо понятней на мой взгляд. После Петцольда Мак-Дональд читается гораздо легче (некоторые места, которые не понял у Мак-Дональда, смог понять у Петцольда). Вообще Петцольд хорошие книжки пишет, разжеванные (взять тот же "Код"). |
||||
|
|||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Compositum, я читал WPF Unleashed Адама Натана, чего и всем уже не в первый раз тут советую
![]() -------------------- СУВ, Partizan. |
|||
|
||||
Compositum |
|
|||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
в электронном виде, да еще и на английском.... =))))) это сложно =)))) |
|||
|
||||
SamMan |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.7.2009 Репутация: нет Всего: нет |
Спорно, молодой человек, спорно...
ВОТ, гораздо ближе к истине - в том то и дело что обе монографии дополняют друг-друга. Совершенно определенно прочитав одно нужно(а не можно) браться за второе. Что в какую очередь не скажу и даже не посоветую, очень субъективно. Мое скромнейшее ИМХО - Дональд производит впечатление более "основательного" труда, хотя Петцольд местами "копает" много глубже.
Тоже отлично, но и пере-идеализировать ее не стоит. Например, в Unleashed, стр. 257, пример "правильного" юзания ресурсов системы:
что не верно уже по определению. DynamicResource ожидает на входе КЛЮЧ ресурсного словаря, вместо этого ему пытаются впихнуть ЗНАЧЕНИЕ. Так мало того, что не приведен правильный XAML:
так еще ничего нет о том, что все классы SystemXXX предлагают доп. статич. св-ва возвращающие не сами системные объекты(цветы, фонты, ....) а КЛЮЧИ к ним. А вы говорите "лучшая книга"... |
||||||||||
|
|||||||||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
SamMan, это мелочь, которая после первой же неудачи при попытке запустить программу с этим кодом, решается прочтением соответствующего раздела MSDN. Насколько я помню, я на эти грабли при прочтении тоже натыкался....однако могу точно сказать, что Натана из трёх перечисленных книг было читать приятнее всего.
-------------------- СУВ, Partizan. |
|||
|
||||
Compositum |
|
|||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Да, ClearValue именно то, что нужно. Спасибо!
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |