我的数据模型具有枚举类型的属性。我想知道是否有办法根据枚举类型的值动态放置用户控件?
我目前正在按照以下方向进行调查:
<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>
也许我走错了路。但我想知道(学习)是否有可能通过动态创建这个requiremet来创建用户控件的实例,但不能使用hide / show exised元素方法。 你会推荐什么?
答案 0 :(得分:2)
您可以根据触发器绑定值设置不同的模板
<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>
e.g。当方向更改(水平或垂直)时,WPF Slider使用此方法