C# & WPF: Pages und Windows

Bierseppi

PCGH-Community-Veteran(in)
Hallo zusammen,

ich mach zz ein größeres Projekt mit C# in Verbidung mit WPF.

Da es ziemlich groß wird das Programm bin ich auf die sogenannten Pages gestoßen,
welche man u.a. zur besseren Codegliederung hernehmen kann.

Jetzt habe ich folgendes Problem:
Ich habe in meinem Window was die Hauptanwendung ist u.a. eine Tab Controll.
Die Seiten dieser Tab Controll will ich mit Pages gestalten, da diese verschiedene
Sachen für eingaben usw. bieten.
Als ersten Tab wollte ich ein Art Menü machen über das man in die anderen Tabs gelangt.
Kann man aus der Page Menü auf die Tab Controll in der Klasse MainWindow zugreifen?
Und wenn Ja wie?

Hat da jemand Vorschläge oder was passendes wo man diesen Sachverhalt nachschlagen kann ?

Viele Grüße

Bierseppi
 
Im .NET ist alles ein Objekt. Normalerweise müsstest du ein Objekt für das Tab-Control haben und auch Objekte für die einzelnen Items der Tab-Control. Was jetzt interessant wäre. Was willst du genau machen? Willst du nur den Tab wechseln oder direkt auf die Steuerelemente einer Page innerhalb eines Tabs?
 
Pages eingebettet in ein TabControl scheint mir etwas ungewöhnlich. Zumindest habe ich noch nichts in der Richtung gesehen. Für gewöhnlich nimmt man hier als Container eher ein NavigationWindow oder Ähnliches. Ich empfehle dir mal hierzu folgende Übersicht: https://msdn.microsoft.com/library/ms750478(v=vs.100).aspx Für die Seiten eines TabControl würden auch einfache UserControls ausreichen, da hier die speziellen Navigationsmöglichkeiten in Verbindung mit Pages nicht genutzt werden können, so weit mir bekannt ist.

Aber um auf deine eigentliche Frage zurückzukommen: Ja, das ist natürlich möglich und es gibt sogar viele verschiedene Wege das zu realisieren. Ohne deine Anwendung näher zu können, würde ich spontan vorschlagen, die entsprechenden Buttons deiner Menü-Page an Commands des ViewModels zu binden, welches hinter dem Window steckt, in dem sich das TabControl befindet. Mit den Commands würde dann auf das jeweils gewünschte Tab gewechselt werden.
 
Hallo,

Sorry dass ich nicht antwortete, war im Skiurlaub.

Im .NET ist alles ein Objekt. Normalerweise müsstest du ein Objekt für das Tab-Control haben und auch Objekte für die einzelnen Items der Tab-Control. Was jetzt interessant wäre. Was willst du genau machen? Willst du nur den Tab wechseln oder direkt auf die Steuerelemente einer Page innerhalb eines Tabs?

ich will nur den Tab ändern.
Ich dachte auch dass ich auf das Objekt der Tab Controll zugreifen kann, aber dies ging leider nicht.

Lowskill, denkst du dass Pages dafür unpassend sind?

Das "Problem" ist halt dass man bei einer großen Anwendung alle Actions die von Buttons oder so ausgelöst werden in der entsprechenden Klasse handeln muss.
Bei einer Großen, wie bei mir welche aus vielen Tabs besteht wird das unübersichtlich.
So sah ich mich nach einer Möglichkeit um das ganze zu modularisieren.
Die Actions selbst können ja sowieso dann externe Methoden aufrufen aber es sind trotzdem viele.
Die Lösung für mich sah nach Pages aus, welche ich anstatt des Grid in der Tabcontrol einblende.
Das einfachste wäre jetzt das Menü als normale Grid zu belassen und nur die jeweiligen anderen Tabs dann als Pages darzustellen.
Diese Greifen auf eine MySql Datenbank auf einem externen Server zu um die Daten zu beziehen.

Viele Grüße

Bierseppi
 
die Tabs sind von der Anzahl Statisch, genaue Anzahl steht noch nicht,
Ribbon Bar hab ich Mal testweise gehabt, aber die Anwendung ist eine Verwaltungssoftware und besteht hauptsächlich aus Formularen und verschiedenen Ansichten.
Die Daten werden meist unformatiert eingegeben und dann zur Datenbank geschickt.

Für die Ribbon Bar, welche ich selbst sehr cool finde, habe ich sehr wenig Anwendung.
 
Lowskill, denkst du dass Pages dafür unpassend sind?
Ja. UserControls reichen für deinen Zweck völlig aus.

Das "Problem" ist halt...
Dein "Problem" hast du ja schon im Eingangs-Posting dargelegt und ich bilde mir auch ein dir dazu einen möglichen Lösungsansatz genannt zu haben. Hast du dazu Fragen?

Edit:

Hier ist ein simples Beispiel dafür, wie man dein Problem lösen könnte: Anhang anzeigen TabNavigation.zip
 
Zuletzt bearbeitet:
Zurück