2017-03-14 1 views
0

Ich versuche, einen Teil einer Ansicht basierend auf einem ausgewählten Wert dynamisch festzulegen. Ich habe bereits, um den Blick und Ansichtsmodell mit XAML wie folgt verwaltet:So erstellen Sie Benutzersteuerelemente dynamisch in der Ansicht in Catel

<DataTemplate DataType="{x:Type vm:MyViewModel}"> 
     <v:MyUserControl /> 
    </DataTemplate> 
... 

<ContentControl Content="{Binding MyViewModel}" /> 

Aber dies scheint nicht sehr flexibel, da ich jedes Mal, wenn neue Typen der Ansicht hinzufügen muss ich neue Werte die bekommen Liste.

Ich denke etwas mehr Dynamik sollte mit Catel (3.9) möglich sein. Wie der in dieser Frage: How Instantiate Control Programmatically in Catel

Ich versuchte bereits, an das ViewModel zu binden, aber Catel scheint die UserControls nicht zu erkennen und instanziiert die Ansicht nicht. Gibt es andere Möglichkeiten, dies zu tun?

Antwort

1

Ich denke, Sie suchen nach der ViewModelToViewConverter, die das alles automatisch für Sie erledigt.

+1

Ja, es funktioniert perfekt! –

+0

Nun, fast perfekt: Wenn ich den gebundenen Wert auf Null setze, bleibt die letzte aktive Ansicht sichtbar. Anfangs, wenn die Ansicht null ist, ist die Ansicht leer. Gibt es eine Möglichkeit, die Ansicht auf null zu setzen, sodass nichts sichtbar ist? –

+1

Sie können den Konverter kopieren/ableiten und das Verhalten ändern. Am Ende ist alles Open Source ;-) –

Verwandte Themen