2010-06-07 2 views

ответ

8

В поле объявляется как статический лишь идентификатор свойства зависимостей, не значения имущества. Он используется для всех экземпляров класса и используется для получения/установки значения свойства для каждого экземпляра.

+0

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

+0

@ RV1987, на самом деле это не имеет смысла ... если вы хотите это сделать, не используйте DP, просто используйте статическое свойство CLR –

+0

@ThomasLevesque: Серьезно я не понимаю смысла или обоснования ваших заявлений, что вы пытаетесь сказать. Я новичок и не понимаю ваши слова. Почему мы должны устанавливать значение для каждого экземпляра, если оно статично. Статический означает его однократную инстанцию ​​на протяжении всего жизненного цикла программы. – Learner

12

Когда вы объявляете DependencyProperty, вы объявляя определение этого свойства, а не место для хранения значения свойства (как было бы в случае с объявлением регулярной собственности). Существует только одно определение свойства для всего класса - в отличие от одного определения для экземпляра класса - и поэтому оно является статическим.

+0

где же хранилище? – zinking

+5

Любой объект с 'DependencyProperty' происходит от типа' DependencyObject'. Экземпляр 'DependencyObject' включает в себя мешок свойств - по существу словарь слова свойства, сопоставленного с значением, - и значение любого установленного параметра DependencyProperty хранится в этом пакете. –

Смежные вопросы