У кого есть лучшая метафора для свойств зависимостей WPF? - PullRequest
2 голосов
/ 26 января 2009

Я читаю Рецепты WPF в C # 2008:

http://www.apress.com/book/view/9781430210849

и, начиная с третьего рецепта, они предполагают, что вы знаете, как работают свойства зависимостей.

Таким образом, после небольшого поиска, я в целом понимаю, что это свойства объекта, которые при размещении внутри другого объекта «приспосабливаются к контексту» к хост-объекту. Я также «узнал», что «вы никогда не знаете, какова ценность этих свойств, поскольку они зависят от их контекста».

Но все же многое из того, что описано в книге, оставляет меня без понятия, как я мог бы использовать их при создании приложений.

У кого есть хорошая метафора или пример свойств зависимостей для людей, начинающих с них и желающих знать, когда и как они будут их использовать?

1 Ответ

3 голосов
/ 26 января 2009

Свойства зависимостей аналогичны обычным свойствам, за исключением того, что они имеют некоторые специальные «зацепки», которые использует WPF.

Одна особенность заключается в том, что иногда, если вы не установите значение свойства, оно получит свое значение от элемента управления, в котором оно размещено (поэтому, если вы установите шрифт для кнопки, текстовый блок внутри кнопки будет использовать этот шрифт если вы не указали другой шрифт для текстового блока), я предполагаю, что это источник всей ерунды "никогда не знаешь значения".

Если вы пишете элемент управления WPF, вам, вероятно, следует использовать свойства зависимостей, поскольку вы можете указать, должны ли изменения автоматически вызывать повторную визуализацию элемента управления (и более), и можете ли вы использовать их для привязки данных.

Если вы пишете класс, производный от Freezable (прямо или косвенно), используя только свойства зависимостей, вы сэкономите некоторую работу.

Если вы пишете класс, не относящийся к WPF, то, вероятно, нет причин использовать свойства зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...