Ich habe eine Frage in Bezug auf WPF-Bindung und Konvertierung der Datentypen durch die UI-Objekte in XAML gesehen.
Ich habe eine Benutzersteuerung, die ich in verschiedenen Anwendungen wiederverwenden möchte. Das Benutzersteuerelement zeigt ein Miniaturbild und mehrere Textblöcke an, um demografische Informationen zur Person wie Name und Adresse anzuzeigen. Das Benutzersteuerelement wird in einem MVVM-Design verwendet, so dass es an ein ViewModel gebunden ist, das für das Benutzersteuerelement spezifisch ist.
Typischen MVVM-Designprinzipien folgend, wird das ViewModel für die Benutzerkontrolle oft in andere ViewModels eingebettet, um eine größere Benutzeroberfläche zu bilden.
Das View Model des User Controls erwartet einen bestimmten Typ (Klasse) als Bindungsobjekt. Die ViewModels, in die die UC-VM eingebettet ist, haben jedoch völlig andere Objektmodelle, so dass sie ihre Daten nicht einfach an die UC-VM weitergeben können. Es muss eine Konvertierung des Datenmodells der übergeordneten VM in das Datenmodell der UC-VM erfolgen.
Meine Frage ist folgende: Gibt es eine sanktionierte Methode, diese Umwandlung durchzuführen?
Ich habe mir IValueConverter und IMultiValueConverter angesehen, und diese sehen nicht wie der richtige Weg aus.
Ich denke, was ich brauche, ist eine Art Zwischenschicht zwischen der übergeordneten VM und der eingebetteten UC VM, in der die Daten der übergeordneten VM in das von der UC VM benötigte Format konvertiert werden.
Oder läuft es im Grunde darauf hinaus, dass ich eine benutzerdefinierte UC VM schreiben muss, um alle Typen zu handhaben, die die übergeordnete VM bereitstellt?