Свойства зависимости

Может кто-либо объяснять меня, что свойство зависимости находится в WPF и что является его использованием. Я знаю, что существует много учебных руководств на Google для него, но они преподают, как создать свойство зависимости. Я смущен как, туда, где я использовал бы его. Я подразумеваю, что буду использовать его в XAML? Если бы кто-либо мог бы объяснить меня простыми словами, который был бы великим.

Было бы хорошо, если простой пример показывают наряду с XAML с примером, того, как я мог бы использовать свойство, и каков будет эффект после того, как я буду использовать его. Большое спасибо за все Ваши ответы..

7
задан developer 2 April 2010 в 19:46
поделиться

5 ответов

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

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

Когда вы реализуете стандартный класс (который становится DataContext «элемента управления»), вы захотите использовать INotifyPropertyChanged вместо DP. Это позволяет этому классу быть привязкой «Источник».

В общем, вам нужно создавать свойства зависимости, только если вы создаете что-то, что будет привязано в XAML, как Target UIelement. Например, предположим, что у нас есть такой XAML:

<local:MyControl ControlProperty="{Binding SomeProperty}" />

Обычно ControlProperty будет Dep. Property, поскольку это цель привязки, а SomeProperty будет стандартным свойством CLR (не DP) в классе, реализующем INotifyPropertyChanged.

13
ответ дан 6 December 2019 в 10:48
поделиться

Свойство зависимости хранит свое значение не в поле, а в некоторой хеш-таблице. Таким образом, ему требуется меньше памяти, что особенно важно для объектов GUI, потому что большинство свойств сохранят свои значения по умолчанию и, таким образом, они не будут занимать больше памяти. Однако свойства зависимостей немного медленнее из-за бокса между объектами и поиска в хеш-таблице.

Структура Dependency Object, кроме того, позволяет использовать множество функций, таких как уведомления об изменениях и т. Д. Я нашел здесь хороший ресурс, объясняющий внутреннюю работу: http://social.msdn.microsoft.com/Forums/en- US / wpf / thread / c33a8359-58be-430d-b949-cb6e6f32d8aa

Я согласен, что синтаксис для объявления их немного уродлив, но вы можете создать помощников, чтобы немного облегчить это.

3
ответ дан 6 December 2019 в 10:48
поделиться

Вам нужна глава 3 WPF Unleashed. Это бесплатный образец главы.

1
ответ дан 6 December 2019 в 10:48
поделиться

Это, вероятно, самая прямая статья с описанием DP:

http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of -dependency-properties-in-wpf /

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

1
ответ дан 6 December 2019 в 10:48
поделиться

Лучшее использование, которое я видел, - это прикрепление свойств к классам, которые вы не можете изменить. Поэтому, если вы получаете стороннюю сборку, вы можете прикрепить дополнительную информацию к классам и прочитать их, когда вам нужно.

0
ответ дан 6 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: