我有一个编辑器视图,可用于多个编辑对象 . 多个对象的视图模型为每个需要处理的字段提供类型为bool的Field1Multiple属性 . 在这种情况下,它现在只是ComboBox控件 . 每当为该字段指示多个不同的值时,应该对App.xaml中定义的该控件应用某种样式 . 该样式更改了控件的背景,以显示此处没有可显示的单个值 .
我试过这个XAML代码:
<ComboBox
ItemsSource="{Binding Project.Field1Values}" DisplayMemberPath="DisplayName"
SelectedItem="{Binding Field1}">
<ComboBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Field1Multiple}" Value="true">
<Setter
Property="ComboBox.Style"
Value="{StaticResource MultiValueCombo}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
但它不起作用,因为我无法在Style中设置Style属性 . 如果我直接在控件上使用触发器,可能只有EventTriggers,没有DataTriggers,编译器说 .
如何根据绑定值设置控件的样式?或者,如果绑定值为true,如何为控件设置某种样式?
1 回答
(编辑到完整解决方案)
你可以使用转换器:
并在你的xaml :(你指示正常的风格和多元转换器)