我有一个自定义控件绑定到几个属性,我想分开样式,但我面临一个问题。 基本上它是一个带有ContentControl的按钮。 Button样式依赖于PropertyA(bool),但ContentControls样式依赖于PropertyA和PropertyB(具有5个元素的枚举)。基于绑定改变其外观的子控件的样式
<Button Style="{Binding PropertyA, Converter={StaticResource styleSelector}}">
<Button.Template>
<ControlTemplate TargetType="Button">
[...]
<ContentControl x:Name="cc1">
<ContentControl.Template>
<MultiBinding Converter="{StaticResource contentSelector}">
<Binding Path="PropertyA" />
<Binding Path="PropertyB" />
</MultiBinding>
</ContentControl.Template>
</ContentControl>
[...]
</ControlTemplate>
</Button.Template>
</Button>
的风格移到资源
<Style x:Key="ButtonStyleA1" TargetType="Button">
[...]
</Style>
<Style x:Key="ButtonStyleA2" TargetType="Button">
[...]
</Style>
因为ContentControl中是按钮,它应该可以在ContentControl中的模板移动到ButtonStyleA1
和ButtonStyleA2
,减少依赖性PropertyB的一部分。 我试过在样式中使用<Setter ... TargetName="cc1">
,但编译器没有找到cc1。 你有一个简单而干净的解决方案,其中的绑定保留在按钮的想法?
非常感谢!
您是否找到解决方案了? – Marc 2013-03-05 12:14:57
嗨,马克,不是。我仍然使用基于多重绑定的'contentSelector'。 – 2013-03-07 07:57:27