visual una studio returned referencia net llamada has from error e_fail devuelto componente component been agregar wpf silverlight dependency-properties

wpf - una - hresult e_fail visual studio 2017



¿Por qué las propiedades de dependencia? (2)

¿Por qué Microsoft siguió la ruta de crear propiedades de dependencia y objetos de dependencia en lugar de utilizar el reflejo y quizás los atributos?


Esto me ayudó a entender el razonamiento:

La principal diferencia es que el valor de una propiedad .NET normal se lee directamente de un miembro privado de su clase , mientras que el valor de DependencyProperty se resuelve dinámicamente al llamar al método GetValue () heredado de DependencyObject .

Cuando establece un valor de una propiedad de dependencia, no se almacena en un campo de su objeto, sino en un diccionario de claves y valores proporcionados por la clase base DependencyObject. La clave de una entrada es el nombre de la propiedad y el valor es el valor que desea establecer.

Las ventajas de las propiedades de dependencia son las siguientes:

Huella de memoria reducida

Es una gran disipación almacenar un campo para cada propiedad cuando piense que más del 90% de las propiedades de un control de UI generalmente se mantienen en sus valores iniciales. Las propiedades de dependencia resuelven estos problemas solo mediante las propiedades modificadas de la tienda en la instancia. Los valores predeterminados se almacenan una vez dentro de la propiedad de dependencia.

Herencia de valor

Cuando accede a una propiedad de dependencia, el valor se resuelve utilizando una estrategia de resolución de valor. Si no se establece ningún valor local, la propiedad de dependencia navega por el árbol lógico hasta que encuentra un valor. Cuando configura FontSize en el elemento raíz, se aplica a todos los bloques de texto a continuación, excepto que sobrescribe el valor.

Notificación de cambio

Las propiedades de dependencia tienen un mecanismo de notificación de cambio incorporado. Al registrar una devolución de llamada en los metadatos de la propiedad, recibirá una notificación cuando se modifique el valor de la propiedad. Esto también es utilizado por el enlace de datos.

De: WPF Tutorials .


Las propiedades de dependencia resuelven un escenario de uso diferente del que reflejarían los atributos y la resolución.

Las propiedades de dependencia proporcionan una API única y consistente para hacer cosas que las propiedades estándar no pueden manejar.