Я использовал пользовательский элемент управления RadioButton с ToggleButton в качестве шаблона элемента управления. Вот как выглядит 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 по-прежнему работает, и свойство IsChecked как RadioButton, так и кнопки переключения ControlTemplate имеют значение 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}"/>