¿Cómo puedo crear una propiedad de dependencia personalizada * solo de escritura *?

Necesito saber cuál es el procedimiento para hacer una propiedad de dependencia de solo escritura. Puedo ver que la clase DependencyProperty no tiene un método especial de "Registro" para propiedades de solo escritura, pero no tengo idea si el método RegisterAttached puede aplicarse a lo que estoy tratando de hacer.

Esta propiedad debe ser una propiedad de dependencia, en lugar de una simple propiedad CLR. Internamente, mi clase requiere un PropertyChangedCallback en esta propiedad para permanecer estable.

Sé que las propiedades de dependencia de solo escritura se pueden crear, porque se establece claramente en:
Pro C # 2008 y la plataforma .NET 3.5, página 1061.
Sin embargo, este es el único lugar donde puedo encontrar "propiedad de dependencia" y "solo escritura" en la misma página. Y este autor aparentemente no creía que fuera necesario mostrar al lector el procedimiento para otra cosa que no sea una propiedad-dependencia básica de lectura-escritura. Por supuesto, este libropodría sé una carga de BS, pero este libro parece bastante estándar, así que creo que es una apuesta bastante segura que el autor tiene razón. Supongo que la falta de información en Internet se debe al hecho de que generalmente nadie necesita hacer una propiedad como esta.

Sé que suena muy cuestionable querer hacer su propia propiedad de dependencia de solo escritura. Te aseguro que tiene sentido donde lo quiero. Mi clase tiene una propiedad cuyo valor solo es útil para el objeto que la configura. Si otro objeto fuera a solicitar el valor de esta propiedad más adelante, no podría darle ningún sentido racional al valor sin conocer el contexto original del establecedor.

Esta propiedad no está destinada a ser utilizada con fines informativos. Dejar que los objetos externos intenten usar el valor de la propiedad de esta manera es problemático, peligroso y un riesgo para la seguridad. Así que creo que el mejor diseño es prohibir las operaciones de lectura en esta propiedad. Cualquiera que use mi clase encontrará que está obligado a usar la clase de la forma en que fue diseñada, lo que funcionará mucho mejor y más limpio al final.

Respuestas a la pregunta(4)

Su respuesta a la pregunta