Mehrere WPF Fenster
-
Hallo,
Ich erstelle gerade eine Anwendung wo man mehrere Fenster benötigt.
Die Fenster mit Buttonklick aufrufen ist auch kein Problem.
Das Problem ist, das natürlich immer wieder ein neues Fenster erstellt wird, wenn ich auf den Button klicke. Kann man nicht irgendwie prüfen, ob das Fenster bereits geöffnet ist und nur wenn es nicht geöffnet ist, dann das Fenster öffnen.
-
Schau dir mal die "Windows"-Eigenschaft des Application-Objektes an.
-
Wieso speicherst du nicht einfach eine Referenz auf das angezeigte
Window
und prüfst dann, ob es noch sichtbar ist? Bzw. du könntest dich an dasClosed
Event desWindow
hängen und so bemerken, wenn dasWindow
geschlossen wird.Grüssli
-
@asc - Ich habe mir das angeschaut, aber so richtig verstehe ich das nicht.
@ Dravere - Habs jetzt so gemacht, das ich eine Boolean im Hauptfenster habe die false ist, wenn das andere Fenster geschlossen ist und true wird, wenn ich das andere Fenster anzeigen lasse. Beim Closed vom anderen Fenster ändert er den Wert der Boolean wieder auf false. und dementsprechend ob die Boolean false ist, wird das andere Fenster geöffnet.
So funzt es.
Dachte nur es gibt vielleicht eine elegantere Variante.
ThX
-
Fantoma555 schrieb:
@asc - Ich habe mir das angeschaut, aber so richtig verstehe ich das nicht.
In der Windows-Eigenschaft sind alle instanzierten Fenster der Anwendung hinterlegt (Sofern man diese nicht in separaten Threads erzeugt); entfernt werden diese beim "Close" (Zwischen dem "Closing"- und "Closed"-Event).
Welchen Ansatz man verwendet ist Imho aber abhängig von der Aufgabenstellung.
-
@asc - Danke für den Tipp. Ich schau es mir gleich mal an. Vielleicht bekomme ich es ja so hin
-
Fantoma5 5 5 schrieb:
@asc - Danke für den Tipp. Ich schau es mir gleich mal an. Vielleicht bekomme ich es ja so hin
Du bekommst es so sicher auch hin, nur ist es ein wenig fragwürdig. Du müsstest nämlich jedes Mal alle Fenster durchsuchen nach dem richtigen Fenster. Wenn du ein Fenster der gleichen Klasse doppelt hast, dann wird es erst recht mühsam. Dann müsstest du trotzdem irgendein Merkmal der erstellen Klasse, z.B. eine Referenz, speichern, nach welcher du in der Liste suchen kannst. Und du bist am Ende gleichweit wie vorher, ausser dass du nun jedes Mal eine Liste durchsuchst, statt nur ein Wert zu prüfen
Grüssli