我有一个绑定到多个属性的自定义控件,我想分离样式,但我遇到了问题。基本上它是一个内部带有 ContentControl 的 Button。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 是 Button 的一部分,所以应该可以将 ContentControl 的模板移动到 PropertyBButtonStyleA1
并ButtonStyleA2
减少对 PropertyB 的依赖。我尝试<Setter ... TargetName="cc1">
在样式中使用,但编译器找不到 cc1。您是否有一个简单而干净的解决方案的想法,其中绑定保留在 Button 中?
非常感谢!