Laden von Inhalten aus einer WPF-Seite in ContentControl
Ich bin auf der Suche nach einem Weg, um die swap-Inhalte von einem Teil meiner Anwendung mit vordefinierten Seiten. Ich habe soweit die ContentControl
, aber ich kann nicht kopieren Sie die Inhalte aus meinen Seiten. Der code, den ich verwendet wurde, war
ContentControl1.Content = new PageName().Content
gab mir eine Ausnahme, die besagt, dass Specified element is already the logical child of another element. Disconnect it first.
Gibt es eine Möglichkeit, ich kann laden Sie die Seite in der ContentControl
?
Alternativ, gibt es eine Möglichkeit, die ich verwenden kann, die Visual Studio-designer zur Gestaltung von Seiten und speichert Sie in einer Weise, die einfacher zu laden ist ein ContentControl
?
Und schließlich, dies würde mein Tag, aber gibt es eine Möglichkeit, ich kann den Inhalt im ContentControl
nennen deklarierten Methoden in der Window
enthalten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit2:, um in der Lage sein, um eine Seite zu laden, müssen Sie die content-Steuerelement, und verwenden Sie ein Rahmen oder eine Navigations-Fenster.
Edit: ich gelesen habe, wieder die Frage und erkannte, dass Ihr mit eine Seite, die unterhalb Lösung funktioniert nur für Benutzer-Steuerelemente. Erhalten Sie immer noch eine Fehlermeldung, wenn Sie versuchen, es mit einem Page-Objekt.
Damit laden Sie eine Benutzer-Steuerelement in das content-Steuerelement, das Sie können versuchen, so etwas wie:
Ich glaube nicht, dass das aufrufen von Methoden aus dem main-Fenster in der control-wäre aber eine gute Idee, wenn Sie wollen, es zu tun, können Sie übergeben Sie eine Instanz von dem Fenster zu der Seite, Konstruktor und Methoden-Aufruf aus dem Hauptfenster.
page
s `usercontrol ist, wenn das wäre leichter zu pflegen. das würde noch lassen Sie mich mit dem designer und auch Ereignisse auslösen, die die maineindow könnte binden. Keine schlechte Idee...Für die Fenster bedienen zu können 'Ereignisse' des usercontrol/Inhalte, die Sie haben zu erkennen, dass das windows mehr oder weniger braucht, zu wissen im Voraus, wie Ereignisse ausgelöst werden konnte. Beim schalten viele Seiten könnte dies dazu führen, eine große Last von Handlern auf das Fenster, die möglicherweise aufgerufen werden.
Besseres design wäre zum speichern der Daten(model) in der Fenster-und design - /code-Logik in der Benutzersteuerelemente, die die Daten manipulieren. Sie können leicht die Daten durch Zuweisung an die DataContext-Eigenschaft des Fensters. Der DataContext des UserControl geladen wird dann wieder die Daten.
Diesem setup wird dazu führen, dass Sie zu besser wartbaren code.