Access WPF-Benutzer control-Wert
Habe ich 2 TextBox in WPF-Benutzer control-Taste und auf WPF-Formular. Wie kann ich die textbox-Wert auf der Schaltfläche click-Ereignis des Hauptformulars, wo ich bin mit dem WPF-Benutzer control
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, im Hinterkopf behalten, dass WPF ist nicht WinForms -- in der Theorie sollten Sie Daten binden Ihre Textfelder auf Eigenschaften und ändern Sie dann den Wert der Eigenschaften, statt den Zugriff auf die Textfelder direkt an!!!
Dass gesagt wird, alles, was Sie tun müssen, ist, um den Namen des UserControl und die Textfelder, und klicken Sie dann auf Sie zugreifen, etwa so:
Int MyUserControl.xaml:
In MeinFenster.xaml:
In MeinFenster.xaml.cs:
In das Benutzersteuerelement, stellen zwei öffentliche Eigenschaften, die einen string zurückgeben:
dann den text aus der textbox-Steuerelemente sichtbar sind, wird auf die wichtigste form.
Oder eine bessere option: eine Veranstaltung, die die usercontrol-heben können, rufen Sie es etwas wie
TextChanged
. Natürlich, Sie wollen einen besseren Namen für es als das, also lasst uns einfach so tun, dass Sie Ihre erste Textfeld dient für die Benutzer, geben Sie einen Namen und rufen Sie das EreignisNameTextChanged
, dann Ihre Veranstaltung so etwas wie dieses:oder noch besser, Sie könnte gehen für ein routed event - aber-stick mit den Grundlagen zuerst.
Abonnieren eines Ereignisses scheint eine bessere option vorgeschlagen von slugster oben. Wenn Sie diese Methode verwenden, können Sie mehrere Instanzen der gleichen Benutzer-Steuerelement im gleichen Fenster, aber behandeln Sie anders, basierend auf welche Benutzer Steuern, Sie entstehen aus.
Als ein Beispiel, Sie können die Adresse geben Nutzer die Kontrolle, die Absender-Adresse und Empfänger-Adresse, die möglicherweise dieselben Felder wie Straße, Stadt, Staat etc. Aber anders Verhalten können, wenn Absender-Adresse oder receipeint-Adresse aktualisiert wird.
Hoffe, das hilft.
Nilesh Gule
http://nileshgule.blogspot.com
Für Ihr spezielles problem, ich kann empfehlen Ihnen eine spezifische Lösung. Dies kann nicht behandelt werden, als ein generelles.
Dein problem liest den Inhalt der Textfelder in Ihrem user-control auf eine Schaltfläche klicken.
Hier ist die Lösung.
In dieser Lösung werden zwei xaml-Dateien und Ihre jeweiligen .cs-Dateien.
Logik:- Die inhärente Logik zum Durchlaufen der visual ekements in der Benutzer-Steuerelement finden Sie die Textfelder, Lesen Sie den text in dem Textfeld auf den button klicken.
So, hier ist der code...
Fenster.xaml - Das ist unser Hauptfenster. Dieses beinhaltet die 1-Taste und die Objektreferenz des user-Kontrolle.
TxtBoxedUC.xaml - Das ist unser user control. Diese enthält unsere zwei Textfelder.
Window1.xaml.cs - Dies enthält die Schaltfläche click-Methode sowie die Methode zum iterieren durch die Elemente in der Benutzer-Steuerelement.
Dem obigen code ist zu behandeln den-button klicken.
Obige code ist zum iterieren durch die Elemente in der Benutzer-Steuerelement.
Den .cs-Datei von der Benutzer-Steuerelement ist nicht erforderlich.
Nun, wenn Sie auf die Schaltfläche klicken, können Sie sehen, was Sie eingegeben haben in der MessageBox.
Happy coding...
Markieren Sie bitte als Antwort, ob dies Ihr problem löst.
Versuchen Sie dies: