Когда вы изменяете значение DependencyProperty
, вы делаете именно это: изменяете его значение.Вы не меняете ссылку на экземпляр DependencyProperty
.Следовательно, допустимо пометить его как readonly
.Это похоже на наличие экземпляра некоторого класса.Вы можете пометить этот экземпляр readonly
, в то же время имея возможность изменять внутренние значения класса.то есть:
private readonly List<string> mSomeCollection = new List<string>();
// Modifying the collection is allowed
mSomeCollection.Add(...);
mSomeCollection.Remove(...);
// Re-assigning the mSomeCollection variable is disallowed with readonly specified
mSomeCollection = new List<string>();
Что касается вопроса статического экземпляра, я полагаю, что он имеет какое-то отношение к способу установки значений DependencyProperty
- они устанавливаются в соответствии с целью свойства, а не ссобственность сама (думаю).Я не совсем уверен, как эта часть работает (мне нужно прочитать об этом), но взгляните на MSDN для обзора свойств зависимостей, которые могут помочь понять это.