コントロールの周りのすべてのスタイリング情報と、ネストされたコントロールテンプレートと、トリガーを使用して、次のことを調べようとしています。コンボボックスコントロールを使用したマルチバインディングコンバータパラメータの適切なパスの参照
コンボボックスコントロールを使用します。トグルボタンコンポーネント用のコントロールテンプレートがあり、標準の表示(ドロップダウンモードではない)で表示値を表示し、トグルボタンでドロップダウンをアクティブにします。
<ControlTemplate TargetType="ToggleButton" x:Key="baseComboBoxToggleButton" >
<!-- overall border covering left side display value and the actual toggle button -->
<Border x:Name="Border" Grid.ColumnSpan="2" />
<!-- area in left side (column=0) that shows the DISPLAY value -->
<Border x:Name="ShowDisplayValueArea" Grid.Column="0" />
<!-- second column using a path to draw the glyph down arrow -->
<Path Grid.Column="1" />
<Triggers for the toggle button ... />
</ControlTemplate>
その後、あなたはそう
<ControlTemplate TargetType="ComboBox" x:Key="ComboBoxGridControlTemplate" >
<Grid>
<ToggleButton Name="ToggleButton"
Template="{StaticResource baseComboBoxToggleButton}"
... />
</Grid>
</ControlTemplate>
上記のトグルボタンのテンプレートを使用するメインComboBoxコントロールを持って、私は最終的に基づく「ShowDisplayValueArea」の背景色を変更しようとしていますマルチバインディングコンバータの結果私のようなトグルボタンコントロールテンプレート領域における多コンバータを配置する場合..
<MultiBinding Converter="{StaticResource myMultiParmConverter}">
<Binding Path="." RelativeSource="{RelativeSource Self}" />
</MultiBinding>
最初の「値」の値で配列が正しくトグルボタンコントロールテンプレートのインスタンスを通過しているオブジェクト。名前だけでなくオブジェクト全体の参照。 (すなわち:トグルボタンの親)
public object Convert(object[] values,
Type targetType,
object parameter,
CultureInfo culture)
だから、私はバインドパラメータを伝える方法トグルボタンがどこから来た実際のコンボボックスを渡すので、私は、パラメータとして渡された実際の全体ComboBoxコントロールを取得します。私のコンバータクラスのデバッガでは、私はデバッガウィンドウ内のオブジェクトの参照を見ていたが