Wie Bearbeiten Sie ein Fenster-Objekt aus einer anderen Klasse in WPF
Ich bin neu in WPF und C#. Ich kenne eine Menge VB.NET und ich bin auf dem Weg, wenn ich rufe ein Formular-Objekt, wie Textfelder, etc. Ich rufe es aus einer anderen form. Nun, ich bin mit WPF, ich bin verwirrt. Weil ich habe ein Hauptfenster. Und ich möchte hinzufügen und Element in eine listbox im Hauptfenster aus der a-Klasse. In VB.Net einfach wie dieses.
IN FORM2
Form1.Textbox.Text = "";
Wobei ich kann es nicht in WPF. Kann mir bitte jemand Helfen. Danke!
Sie können, wenn Sie die Referenz auf das window-Objekt.
Wie kann ich das tun?
Hängt, eine Möglichkeit wäre zu gehen, dass Referenz im Konstruktor der anderen Klasse und speichern Sie es in ein Feld. Und Sie mussten etwas tun, ähnlich wie in VB.NET zu.
Wie kann ich das tun?
Hängt, eine Möglichkeit wäre zu gehen, dass Referenz im Konstruktor der anderen Klasse und speichern Sie es in ein Feld. Und Sie mussten etwas tun, ähnlich wie in VB.NET zu.
InformationsquelleAutor Sam Araja | 2011-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
WPF-Fenster in XAML definiert haben Ihre Kontrollen öffentlich zugänglich, andere Klassen und Formen, es sei denn, Sie speziell markieren Sie mit den x:FieldModifier Attribut als privat.
Daher, wenn Sie eine Instanz des Hauptfensters zugänglich in eine andere Klasse, sei es ein Fenster oder irgendetwas anderes, werden Sie in der Lage, füllen Sie Steuerelemente innerhalb dieser zweiten Klasse.
Einem bestimmten Szenario ist, wenn Sie möchten, aktualisieren Sie den Inhalt eines Steuerelements in Ihrem Haupt-Fenster von einem Kind, Fenster, die Sie geöffnet haben. Ist so ein Fall, können Sie das untergeordnete Fenster die Owner-Eigenschaft, um die aktuelle, Haupt-Fenster, um es zu erreichen, während das Kind sichtbar ist. Zum Beispiel, sagen wir, Sie haben diese definiert zwei Fenster:
und
jeder in seiner eigenen XAML-Datei.
In
MainWindow
's code dahinter, in das button-Klick-handler, die Sie zeigen, eine Instanz vonAnotherWindow
als dialog-und seineOwner
- Eigenschaft von MainWindow - Instanz:Nun haben Sie Zugriff auf die
MainWindow
's Instanz vonAnotherWindow
's Owner-Eigenschaft, um ein neues Element hinzufügen, um dieListBox
Steuerung definiert wurde, wird in der Schaltfläche click-handler inAnotherWindow
's code hinter:Es fügt einfach eine neue Zufallszahl für die
ListBox
, um zu zeigen, wie der code greift auf und ändert die Steuerung die Daten inMainWindow
.InformationsquelleAutor luvieere
Reine WPF-Lösung, aber auch das einfachste in deinem Fall ist die Verwendung eines Data Binding in WPF.
Jede form der Kontrolle ist gebunden an einige Daten auf ModelView (Reine MVVM-Ansatz) oder zu den Daten (mehr oder weniger, wie Sie es tun können, in WindowsForms). Also das "nur", was Sie tun müssen, ist das Lesen/schreiben von Daten die gebundenen Steuerelemente in der Benutzeroberfläche des Formulars.
Zum Beispiel, Sie haben
TextBox
auf Windows und Lesen möchten Daten aus.Diese
TextBox
ist gebunden an einigestring
Eigenschaft der Klasse ist verantwortlich für das halten der Daten für die Steuerelemente auf dem Formular (nur ein Beispiel, in der realen Welt könnte 1000 andere Lösungen, basierend auf der Entwickler-Entscheidungen). Also, was Sie brauchen, ist nicht zu sagen: "Fenster, geben Sie "textbox" und nach dem LesenTextBox's
Inhalte aber Lesen Sie einfach gebundenenstring
Eigenschaft.Sicher, es ist sehr einfach, Beschreibung der Sachen. Aber nur um Ihnen einen Tipp geben. Folgen Sie databinding-link oben, um mehr zu erfahren über diese Sachen. Keine Angst, eine Menge Sachen gibt, es ist, nachdem alle, ist nicht eine komplizierte Idee und auch Recht intuitiv. Zu machen, dass die Sachen in einfach Fall, werden Sie nicht brauchen, um große Anstrengungen von mir. Das Zeug wird wirklich Komplex, wenn Sie end up in real world Anwendungen.
InformationsquelleAutor Tigran
Diese erhalten alle aktiven windows:
InformationsquelleAutor brendan botond