Hallo,
bei der Erstellung eines WPF-Usercontrols bin ich bislang davon ausgegangen, dass dessen Loaded-Methode nur einmal nach dem Laden der Form gefeuert wird.
Dies ist aber nicht so, wenn sich das Usercontrol auf einem Pageframe befindet. Dann wird auch bei jedem Wechsel auf die zugehörige Page Loaded gefeuert! 😜
Gibt es einen empfohlenen Weg, um diesen Fehler?! zu umgehen, außer das man mit einem Boolwert arbeitet?
Danke!
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]
Hallo,
Ein Fehler ist das nicht, siehe Doku
Therefore Loaded cannot be assumed to occur only when a page is first loaded through navigation to the page. .
Loaded kann sehr oft auftreten unter Umständen. Da gibts auch nichts um das zu verhinden. Vielleicht ist aber Initialized das geeignetere Event für dein Vorhaben.
Baka wa shinanakya naoranai.
Mein XING Profil.
Hallo m.grauber,
meine Empfehlung ist alle relevanten Informationen, die du nach einem Pagewechsel noch benötigst in einem ViewModel zu halten, da eben alles in der View bei Pagewechsel verloren geht. Und dort wäre das Äquivalente der Konstruktor oder eine eigene Intialisierungsmethode.
Lg XXX
Hallo,
es gibt auch noch das KeepAlive Property der Page Klasse, aber das sollte man mit Bedacht setzen.
Baka wa shinanakya naoranai.
Mein XING Profil.
Hallo xxxprod und talla,
Danke für Eure Hilfe! 👍 👍
KeepAlive habe ich versucht und in verschiedenen Szenarien eingesetzt (teils mit JournalEntry). TabControl, die jeweilige Page und im Control. Damit funktioniert es scheinbar nicht.
Baut man in der jeweiligen Page eine <Page> mit KeepAlive ein, gibt es beim Wechseln eine Fehlermeldung:
Für die Page sind nur "Window" oder "Frame" als übergeordnete Elemente zulässig.
Ich führe den Code nun im Loaded nur einmal aus und ignoriere weitere Aufrufe. Der Loaded ist für mich zwingend, da erst da das Binding steht.
Vielen Dank nochmals!
Grüße
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]