41 votes

Pourquoi les propriétés de dépendance?

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?

65voto

Kyle Rozendo Points 15606

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.

8voto

Reed Copsey Points 315315

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X