Pourquoi Microsoft a suivre la voie de faire les propriétés de dépendance et la dépendance des objets au lieu de l'aide de la réflexion et peut-être les attributs?
Réponses
Trop de publicités?Cela m'a aidé à comprendre le raisonnement:
La principale différence est que la valeur de la normale .NETS de la propriété est en lecture directement à partir d'un membre privé dans votre classe, tandis que la valeur d'une DependencyProperty est résolu dynamiquement lors de l'appel de la GetValue() méthode qui est héritée de DependencyObject.
Lorsque vous définissez une valeur d'une propriété de dépendance, il n'est pas stocké dans un champ de l'objet, mais dans un dictionnaire de clés et de valeurs fournies par la classe de base DependencyObject. La clé de l'entrée est le nom de la propriété et de la valeur est la valeur que vous souhaitez définir.
Les avantages des propriétés de dépendance sont comme suit:
Consommation de mémoire réduite
C'est un énorme dissipation de stocker un champ pour chaque propriété quand vous pensez que plus de 90% des propriétés d'un contrôle d'INTERFACE utilisateur généralement rester à ses valeurs initiales. Les propriétés de dépendance résoudre ces problèmes par stockent uniquement les propriétés modifiées dans l'instance. Les valeurs par défaut sont stockés une fois à l'intérieur de la propriété de dépendance.
L'héritage de la valeur
Lorsque vous accédez à une propriété de dépendance de la valeur est résolu en utilisant une valeur de stratégie de résolution. Si aucune valeur n'est définie, la propriété de dépendance navigue dans l'arborescence logique, jusqu'à ce qu'il trouve une valeur. Lorsque vous définissez la taille de la police sur l'élément racine, il s'applique à tous les textblocks ci-dessous, sauf que vous remplacez la valeur.
Notification de changement de
Les propriétés de dépendance sont construites avec un changement de mécanisme de notification. En enregistrant un rappel dans les métadonnées de la propriété vous êtes notifié, lorsque la valeur de la propriété a été changé. C'est également utilisé par la liaison de données.
De: WPF Tutoriels.
Les propriétés de dépendance résoudre un autre scénario d'utilisation de la réflexion et des attributs résoudre.
Les propriétés de dépendance fournir une seule API pour faire des choses que les propriétés standard ne peut pas gérer.
- Le permettent à des classes de fournir un grand nombre de propriétés sans surcharge (comme ils sont créés uniquement, de manière statique, lorsqu'il est utilisé, non pas une fois par classe). Pour
- La propriété de dépendance du système gère des choses comme des Propriétés Attachées d'une manière uniforme standard des propriétés de dépendance.
- Les propriétés de dépendance assurer la propreté de l'API pour le suivi des modifications ainsi que la validation.
- Les propriétés de dépendance fournir la valeur de la propriété de l'héritage.
- Les propriétés de dépendance fournir de très bons résultats lorsque les données liées.