いくつかのプロパティにバインドされたカスタムコントロールがあり、スタイルを分離したいのですが、問題が発生しています。基本的には、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>
ButtonStyleA1
ContentControlはButtonの一部であるため、ContentControlのテンプレートをPropertyBに移動し、PropertyBへの依存関係をButtonStyleA2
減らすことができるはずです。スタイルで使用しようとし<Setter ... TargetName="cc1">
ましたが、コンパイラがcc1を見つけられません。バインディングがボタンに残るシンプルでクリーンなソリューションのアイデアはありますか?
どうもありがとう!