Laden...

WPF: UI dynamisch ändern

Erstellt von Wu-mc vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.674 Views
W
Wu-mc Themenstarter:in
3 Beiträge seit 2006
vor 17 Jahren
WPF: UI dynamisch ändern

Hallo Forum,

gibt es im Zusammenhang mit WPF und XAML eine Möglichkeit den Inhalt eines Fensters dynamisch zu ändern?

Als konkretes Beispiel, ich habe im Hauptteil meines Fensters eine ListView mit GridView wo ich eine Mitarbeiterliste ausgebe. Wenn man jetzt auf einen Mitarbeiter doppelklickt soll die ListView verschwinden und eine Detailansicht mit allen Infos zu diesem Mitarbeiter erscheinen. Oder klickt man auf den Button "Neu" soll im Hauptfenster eine Eingabemaske erscheinen.

Mit Dialogen wäre das ja leicht lösbar, aber ich hätte es gerne in einem Fenster. Könnte auch im Code die Elemente hinzufügen und wieder entfernen, aber es muss doch auch eine elegantere Art mit XAML geben. Habe schon versucht XAML Dateien einzulesen und als UIElement auf die Oberfläche zu adden, was auch funktioniert, nur geht das nicht mit Databindings und Event-Handler im XAML Code.

Hat da jemand ne Idee wie ich das lösen könnte? Bin für jeden Denkanstoß dankbar!

mfg

Niko Will

W
Wu-mc Themenstarter:in
3 Beiträge seit 2006
vor 17 Jahren

Eine Möglichkeit die ich jetzt gefunden habe ist alles im XAML Quelltext zu definieren und die nicht verwendeten Elemente auf Visibility=Hidden zu setzen und dann im Code-Behind entsprechend ein- und auszublenden. Ist zwar nicht die feine Englische Art, aber funktioniert.

Für bessere Vorschläge bin ich aber gerne bereit!

6.862 Beiträge seit 2003
vor 17 Jahren

Hmm, genau so hätte ich es wahrscheinlich auch vorgeschlagen. Im Grunde macht man es ja heute ähnlich wenn man sich erstmal alles auf verschiedenen Panels designed, und dann nur jeweils das visible schaltet was man brauch. Denke auch in XAML gehts nicht anders da XAML ja deklarativ ist, und glaube nicht das es möglich ist in XAML direkt Werte von Steuerelementen aus anderen Steuerelementen zu ändern.

Baka wa shinanakya naoranai.

Mein XING Profil.