Tach zusammen!
Ich suche nun schon eine Weile nach einer Möglichkeit ein komplettes Window zu vererben. Bei Winforms ist das eine Kleinigkeit, WPF macht mir aber Ärger. Die *.xaml.cs zu vererben klappt nach alter Manier, aber der xaml-Teil muss ja nun ebenfalls wissen wovon er erben soll. Da ich mit Büchern und googeln nicht weiter gekommen bin frage ich mich nun ob das überhaupt möglich ist, weiss das jemand?
zweite Frage:
Eigentlich bräuchte ich gar keine Vererbung, da ich nur die *.xaml Datei anpassen will. Da hier die Trennung zwischen Anwendungslogik und Darstellung existiert müsste es doch eigentlich auch eine Möglichkeit geben je nach Wunsch das xaml auszutauschen (ohne einen xml-Reader anzuschmeissen)? Hat jemand einen Link oder andere Infos dazu für mich?
Danke im vorraus!
Sebo
Die erste Frage habe ich mir nun doch noch selbst beantworten können: Zitat: "essentially you're asking for visual inheritance a la winforms. Unfortunately, this is not supported in WPF."
Wie/Wann möchtest du XAML Datei bzw. Inhalt austauschen?
Schau dir mal die InitializeComponent Methode an. Da erkennst du, wie der XAML Code "eingelesen" wird.
Zuerst wird die eingebette Ressource (XAML Code) als System.Uri Objekt instanziiert und anschliessend per System.Windows.Application.LoadComponent geladen.
Vielleicht hilft dir das weiter.
Theoretisch ist zwar Logik und Designtrennung gedacht. Aber es muss ja zwischen diesen beiden Sachen ein Verbindung geben. D. h. in deinem XAML oder spätenstens im Code muss ja ein Bindung o. ä. stattfinden.
Somit enthält das XAML nicht nur reine Designkomponenten sondern auch teilweise die "Schnittstelleninformationen."
Hi .tim!
Das ist ein guter Tipp - hätte ich selber drauf kommen sollen. Werd' ich mir mal etwas genauer anschauen.
Somit enthält das XAML nicht nur reine Designkomponenten sondern auch teilweise die "Schnittstelleninformationen."
Das ist klar, habe mir nur nie über das Laden des Xaml Gedanken gemacht. 🙂
Tach zusammen!
Ich suche nun schon eine Weile nach einer Möglichkeit ein komplettes Window zu vererben. Bei Winforms ist das eine Kleinigkeit, WPF macht mir aber Ärger. Die *.xaml.cs zu vererben klappt nach alter Manier, aber der xaml-Teil muss ja nun ebenfalls wissen wovon er erben soll. Da ich mit Büchern und googeln nicht weiter gekommen bin frage ich mich nun ob das überhaupt möglich ist, weiss das jemand?
...
Sebo
Einige Jahre vergangen und das Problem kommt so ähnlich wieder auf mich zu:
Ich habe einige Dialoge, die interne Timer verwenden, die gleiche Validierungs Routinen anwenden, Properties verarbeiten etc.
Die XAML sind ggf. etwas anders. Wie programmiere ich einen von WPF Window abgeleiteten Basis Dialog, der wiederum die Basis für eine Reihe weiterer Dialoge ist.