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