J'ai lu sur les propriétés de dépendance pendant quelques jours et j'ai compris comment ils récupèrent la valeur plutôt que de les définir / les obtenir comme dans les propriétés CLR. N'hésitez pas à me corriger si je me trompe. P>
De ma compréhension Toutes les commandes WPF, telles que la touche TextBlock, etc. qui dérivent de dépendanceObject contiendraient également des propriétés de dépendance pour stocker leurs valeurs, au lieu d'utiliser des propriétés CLR. Cela présente l'avantage de remplacer les valeurs locales dans les animations de cas échéant ou hériter des valeurs si aucune valeur locale n'est définie sur tout, etc. P>
J'essaie maintenant de trouver des échantillons pour créer et utiliser mon propre DP. P>
1) est-il possible de créer ma propre propriété de dépendance sur un contrôle WPF existant? Disons que je voudrais une propriété de dépendance de type INTEGER sur la classe TextBlock WPF? Ou dois-je créer une nouvelle classe dérivée de TextBlockBase afin de créer une propriété de dépendance ci-dessus là-bas? p>
2) Dans les deux cas, laissez-le avoir créé une propriété de dépendance sur une classe TextBlock WPF. Maintenant, je voudrais l'utiliser en contraignant le contenu de l'étiquette à cette propriété de dépendance de la textblock. De sorte que l'étiquette montrerait toujours la valeur réelle de la DP de TextBlock, peu importe si elle est héritée ou définie localement. P>
J'espère que quelqu'un peut m'aider avec ces deux exemples ... Merci beaucoup, Kave p>
3 Réponses :
Vous pouvez utiliser propriétés ci-jointes pour cela.
Définir Votre propriété myint: p> Contenu d'étiquettes de liaison: p>
Merci, c'est aussi une bonne alternative que je vais essayer bientôt.
Vous ne pouvez pas ajouter de dépendancePropriétés au type existant. Bien que vous puissiez utiliser ci-jointProperty, la logique derrière l'utilisation et la dérive de nouveau type est complètement différente. P>
Dans votre cas, je recommanderais de dériver un nouveau type. Principalement parce que votre logique est liée à ce type. Ceci est basique derrière l'héritage et n'est pas lié avec des propriétés de dépendance. P>
En cas d'attacheProperty, vous n'abandonnez qu'un autre ajout d'objet de la valeur de différents objets. Quelque chose comme la grille.row donne une préjudice de grille de son enfant et comment elle devrait la positionner. Objet où cette propriété est définie n'est pas au courant de rien. P>
Merci. Pourquoi voudrais-je jamais créer DP? J'ai lu que certaines personnes créent leurs propres. J'aimerais voir un exemple où il est logique de créer votre propre DP ...
Voici un exemple d'une substitution de l'élément d'exécution: un xaml correspondant est le suivant: p>