L'accès WPF de contrôle de l'utilisateur de la valeur
J'ai 2 zone de texte dans WPF de contrôle de l'utilisateur et le bouton sur le formulaire WPF. Comment puis-je accéder à ces textbox valeur sur l'événement click du bouton de formulaire principal où je suis en utilisant le contrôle utilisateur WPF
Tout d'abord, gardez à l'esprit que WPF n'est pas WinForms -- en théorie, vous devriez lier des données vos zones de texte pour les propriétés et modifiez la valeur des propriétés, au lieu d'accéder aux zones de texte directement!
Cela étant dit, tout ce que vous avez à faire est de nom de l'objet UserControl et les zones de texte, puis d'y accéder, comme ceci:
ensuite le texte à partir des contrôles de zone de texte est visible à l'écran principal.
Ou une meilleure option: disposer d'un événement que le contrôle utilisateur peut soulever, appeler quelque chose comme TextChanged. Bien sûr, vous voulez un meilleur nom pour ce que, donc, nous allons juste faire semblant que votre première zone de texte est conçu pour l'utilisateur à entrer un nom et d'appeler l'événement NameTextChanged, votre événement sera quelque chose comme ceci:
Vous abonnant à un événement semble être une meilleure option, tel que suggéré par slugster ci-dessus. Si vous utilisez cette approche, vous pouvez avoir plusieurs instances de la même contrôle de l'utilisateur dans la même fenêtre, mais les traiter différemment, en fonction de l'utilisateur qui contrôle dont ils sont originaires.
Comme un exemple, vous pouvez avoir une adresse du type de contrôle de l'utilisateur qui peut avoir l'adresse de l'expéditeur et du destinataire adresse qui pourrait avoir les mêmes domaines comme la rue, ville, état, etc. Mais il peut se comporter différemment lorsque l'adresse de l'expéditeur ou receipeint adresse est mise à jour.
Pour votre problème spécifique, je peux vous suggérer une solution spécifique. Cela ne peut pas être traitée comme une question d'ordre général.
Votre problème est de lire le contenu des zones de texte dans votre contrôle de l'utilisateur sur un bouton.
Voici la solution.
Dans cette solution, il y aura deux fichiers xaml et leurs respectives .cs fichiers.
Logique:- La logique consiste à parcourir le visuel ekements dans le contrôle de l'utilisateur, de trouver les zones de texte, lire le texte sur le bouton cliquez sur.
Voici donc le code...
Fenêtre.xaml - C'est notre fenêtre principale. Il contient 1 bouton et la référence de l'objet du contrôle de l'utilisateur.
Window1.xaml.cs - Ce qui contient le bouton cliquez sur la méthode comme la méthode d'itération sur les éléments visuels dans le contrôle de l'utilisateur.
Tout d'abord, gardez à l'esprit que WPF n'est pas WinForms -- en théorie, vous devriez lier des données vos zones de texte pour les propriétés et modifiez la valeur des propriétés, au lieu d'accéder aux zones de texte directement!
Cela étant dit, tout ce que vous avez à faire est de nom de l'objet UserControl et les zones de texte, puis d'y accéder, comme ceci:
Int MyUserControl.xaml:
Dans MyWindow.xaml:
Dans MyWindow.xaml.cs:
OriginalL'auteur Tiberiu Ana
Dans le contrôle usercontrol, faire deux propriétés publiques qui retourne une chaîne de caractères:
ensuite le texte à partir des contrôles de zone de texte est visible à l'écran principal.
Ou une meilleure option: disposer d'un événement que le contrôle utilisateur peut soulever, appeler quelque chose comme
TextChanged
. Bien sûr, vous voulez un meilleur nom pour ce que, donc, nous allons juste faire semblant que votre première zone de texte est conçu pour l'utilisateur à entrer un nom et d'appeler l'événementNameTextChanged
, votre événement sera quelque chose comme ceci:ou, mieux encore, vous pourrait aller pour un événement routé - mais s'en tenir avec les bases en premier.
OriginalL'auteur slugster
Vous abonnant à un événement semble être une meilleure option, tel que suggéré par slugster ci-dessus. Si vous utilisez cette approche, vous pouvez avoir plusieurs instances de la même contrôle de l'utilisateur dans la même fenêtre, mais les traiter différemment, en fonction de l'utilisateur qui contrôle dont ils sont originaires.
Comme un exemple, vous pouvez avoir une adresse du type de contrôle de l'utilisateur qui peut avoir l'adresse de l'expéditeur et du destinataire adresse qui pourrait avoir les mêmes domaines comme la rue, ville, état, etc. Mais il peut se comporter différemment lorsque l'adresse de l'expéditeur ou receipeint adresse est mise à jour.
Espère que cette aide.
Nilesh Gule
http://nileshgule.blogspot.com
OriginalL'auteur Nilesh Gule
Pour votre problème spécifique, je peux vous suggérer une solution spécifique. Cela ne peut pas être traitée comme une question d'ordre général.
Votre problème est de lire le contenu des zones de texte dans votre contrôle de l'utilisateur sur un bouton.
Voici la solution.
Dans cette solution, il y aura deux fichiers xaml et leurs respectives .cs fichiers.
Logique:- La logique consiste à parcourir le visuel ekements dans le contrôle de l'utilisateur, de trouver les zones de texte, lire le texte sur le bouton cliquez sur.
Voici donc le code...
Fenêtre.xaml - C'est notre fenêtre principale. Il contient 1 bouton et la référence de l'objet du contrôle de l'utilisateur.
TxtBoxedUC.xaml - C'est notre contrôle utilisateur. Il contient nos deux zones de texte.
Window1.xaml.cs - Ce qui contient le bouton cliquez sur la méthode comme la méthode d'itération sur les éléments visuels dans le contrôle de l'utilisateur.
Le code ci-dessus est de gérer le clic sur le bouton.
Code ci-dessus est pour itérer sur les éléments visuels dans le contrôle de l'utilisateur.
L' .cs fichier de contrôle de l'utilisateur n'est pas nécessaire.
Maintenant, lorsque vous cliquez sur le bouton, vous pouvez voir quel vous avez entré dans la MessageBox.
Heureux de codage...
Veuillez marquer comme réponse si cela résout votre problème.
OriginalL'auteur Anish Kurian
Essayez ceci:
OriginalL'auteur trittberg