コントロール テンプレートとして ToggleButton を持つカスタム RadioButton コントロールを使用しています。xaml は次のようになります。
<RadioButton.Template>
<ControlTemplate>
<ToggleButton x:Name="tb" IsChecked="{Binding IsChecked, Mode=TwoWay,
RelativeSource={RelativeSource TemplatedParent}}"
Content="{TemplateBinding RadioButton.Content}"
PreviewMouseDown="tb_PreviewMouseDown">
</ToggleButton>
</ControlTemplate>
</RadioButton.Template>
プログラムでボタンの IsChecked プロパティを設定するか、それを使用してバインディングを作成しようとする場合を除いて、うまく機能しています。次に、チェックする必要があるボタンが視覚的に応答しなくなります。ボタンが押されているようには見えず、Aero マウス オーバー効果も表示されません。Clicked イベント ハンドラーは引き続き機能し、値を調べると、RadioButton と ControlTemplate のトグル ボタンの IsChecked プロパティはどちらも true です。バインディングに何か問題がありますか? 何か案は?
アプリケーションでの使用方法の例を次に示します。
<local:RadioToggleButton Content="1Hr" GroupName="Interval" x:Name="oneHrBtn"
IsChecked="{BindingPath=oneHrBtnIsChecked, Mode=TwoWay}" Margin="2 5 3 5"
IsEnabled="{Binding Path=oneHrBtnIsEnabled, Mode=TwoWay}"/>