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