J'ai un maintenant lorsque j'utilise usercontrol Code> appelé
CustomTextBox CODE> avec ce xaml:
CustomTextBox code> et vouloir faire la liaison à
innatextbox.text code>, il ne fonctionne pas: p>
... {Binding ElementName=CustomTextBox.InnerTextBox, Path=Text}
3 Réponses :
Regardez le texte de débogage dans la fenêtre de sortie de Visual Studio, il donnera un texte explicatif pour les erreurs de liaison de données. P>
Dans mon projet, il dit: Erreur de chemin de liaison: «Texte 'Propriété non trouvée sur' Object '' '' CustomTextBox '(Nom =' CustomTextBox ')'. BindingExpression: chemin = texte; Dataitem = 'CustomTextBox' (Nom = 'CustomTextBox'); Elément cible est 'Textbox' (Nom = ''); La propriété cible est 'Text' (type 'String')
Il ne peut tout simplement pas parcourir "CustomTextBox.innertextbox.text" - il prend toujours "CustomTextBox.text" à la place.
Vous pouvez faire un héritage. Vous ne créez pas correctement le contrôle personnalisé. Dans WPF Coustom Control il y a deux parties p>
Reportez-vous aux liens ci-dessous pour plus de Doitils P>
http://msdn.microsoft.com/en-us/library/ cc295235.aspx p>
http: //www.codeproject. COM / Article / 17830 / Création / Construction-A-Custom-WPF-Control P>
http: //www.codeproject. com / articles / 49802 / Create-A-WPF-Custom-Control-Part-2 P>
Les commandes avec XAML ne peuvent pas être héritées - il suffit de contrôler avec du code-derrière seulement, voir Stackoverflow.com/Questtions/269106/...
Dans mon projet, les contrôles de base et dérivés sont des contrôles personnalisés avec XAML et Code-derrière ...
1.Dans le code derrière votre contrôle Créez un nouveau DP, disons que nous appelons le texte informatique. 2. Dans la XAML à partir de votre code:
3. Faites certainement sûr que le DataContext de la zone de texte est le USERCONTROL P> P>
Vous devez utiliser une nouvelle propriété de dépendance.
Merci. Y a-t-il une façon officielle de faire cela? J'ai lu un livre sur WPF 4 et je n'ai rien trouvé à ce sujet. Je n'ai pas trouvé de lignes directrices sur "Copier des propriétés" ou "Exposer les propriétés de dépendance" sur MSDN non plus.
1.Dans le code derrière votre contrôle crée un nouveau DP, disons que nous appelons le texte 2. Dans la XAML à partir de votre code: 3.Parrer que Le DataContext de la zone de texte est le USERCONTROL
Copiez-le pour noter le coussinet ou quelque chose que je ne peux pas poster msg ici, ne sais pas pourquoi
Je vois, merci. Seule la liaison doit être {Texte de liaison2} Je suppose.
Le «2» était pour la prochaine étape 1.2.3 ... mais bien sûr comme vous le voyez
@ZSH Vous pouvez écrire votre commentaire comme réponse et je l'accepterais.