2016-04-07 14 views
0

Mein Datenmodell hat eine Eigenschaft des Aufzählungstyps. Ich frage mich, ob es möglich ist, dynamisch ein Benutzersteuerelement basierend auf dem Wert des Aufzählungstyps zu platzieren?Dynamischer Inhalt eines Gitters

Ich bin derzeit untersucht in der folgenden Richtung:

<Grid Name ="AdjustmentsArea" DockPanel.Dock ="Right" MinWidth ="100" Visibility ="Collapsed" > 
    <ContentControl DataContext ="{Binding AjustmentView}"> 
     <Style TargetType ="model:AjustmentViews"> 
      <Style.Triggers> 
       <DataTrigger Binding ="{Binding}" Value ="Settings"> 
        /// is it possible in principle to point a user control using a Setter ??? 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ContentControl> 
</Grid> 

auch bin ich auf einem falschen Weg sein kann. Aber ich würde gerne wissen (lernen), wenn es möglich ist, diese Anforderung über dynamische zu implementieren, erstellen Sie eine Instanz eines Benutzersteuerelements, aber nicht mit dem Verbergen/Zeigen exised Element Ansatz. Was würden Sie empfehlen?

Antwort

2

können Sie verschiedenen Vorlagensatz in Abhängigkeit von Trigger-Bindungswert

<ContentControl DataContext ="{Binding AjustmentView}"> 
<ContentControl.Style> 
<Style TargetType ="ContentControl"> 
<Style.Triggers> 
<DataTrigger Binding="{Binding}" Value ="Settings"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> <!--template with UserControl here--> </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</DataTrigger> 
</Style.Triggers> 
</Style> 
</ContentControl.Style> 
</ContentControl> 

z.B. WPF Slider verwendet diesen Ansatz, wenn sich die Ausrichtung ändert (horizontal oder vertikal)

+0

Leider ein Fehler: "Das Mitglied" Vorlage "wird nicht erkannt oder ist nicht zugänglich" bei

+0

@YaugenVlasau, ich meine ein Stil, der auf ContentControl angewendet werden sollte – ASh

+0

Danke für die neueste Code-Aktualisierung. Kondensiert, klar, funktioniert! –