Мне нужно знать, какова процедура для создания свойства зависимости только для записи. Я вижу, что класс DependencyProperty не имеет специального метода «Register» для свойств только для записи, но я не знаю, может ли метод RegisterAttached применяться к тому, что я пытаюсь сделать.
Это свойство должно быть свойством зависимости, а не простым свойством CLR. Внутренне мой класс требует PropertyChangedCallback для этого свойства, чтобы оставаться стабильным.
Я знаю, что могут быть созданы свойства зависимостей только для записи, потому что это довольно четко указано в:
Pro C # 2008 и платформа .NET 3.5, стр. 1061 .
Тем не менее, это единственное место, где я могу найти «свойство зависимости» и «только запись» на одной странице. И этот автор, по-видимому, не думал, что на самом деле необходимо показывать читателю процедуру для чего-либо, кроме базового свойства зависимости чтения-записи. Конечно, эта книга может быть грузом BS - но эта книга выглядит довольно стандартно, так что я думаю, что вполне уверенно, что автор прав. Я предполагаю, что недостаток информации в интернете проистекает из того факта, что вообще никому не нужно создавать такую собственность.
Я знаю, звучит очень сомнительно, если вы хотите создать собственное свойство зависимости только для записи. Уверяю вас, имеет смысл, где я этого хочу. У моего класса есть свойство, значение которого полезно только для объекта, его устанавливающего. Если бы другой объект позже запросил значение этого свойства, он не смог бы иметь никакого рационального смысла в значении, не зная оригинального контекста установщика.
Это свойство не предназначено для использования в информационных целях. Разрешение сторонним объектам пытаться использовать значение свойства таким способом проблематично, опасно и представляет угрозу безопасности. Поэтому я считаю, что лучший дизайн - запретить операции чтения для этого свойства. Любой, кто использует мой класс, обнаружит, что он вынужден использовать класс так, как он задумывался, что в итоге получится намного лучше и чище.