Я пытаюсь создать шаблон управления для Silverlight RadioButton, используя ToggleButton для каждого элемента. Проблема, с которой я сталкиваюсь, заключается в том, что механизм выбора, кажется, сломан. Вот (упрощенно) стиль Я использую:Выбор разбит на пользовательский шаблон управления RadioButton
<Style TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Grid>
<ToggleButton x:Name="toggle"
IsChecked="{TemplateBinding IsChecked}">
<ContentPresenter x:Name="contentPresenter" />
</ToggleButton>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Тест просто ли на самом деле работает выбор радио - так, например, текстовые блоки, представленные ниже, не показывают правильное значение при нажатии на радиокнопки:
<StackPanel>
<RadioButton x:Name="radio1" GroupName="Test" Content="1" />
<RadioButton x:Name="radio2" GroupName="Test" Content="2" />
<TextBlock Text="{Binding ElementName=radio1,Path=IsChecked,StringFormat='Radio 1 checked: {0}'}" />
<TextBlock Text="{Binding ElementName=radio2,Path=IsChecked,StringFormat='Radio 2 checked: {0}'}" />
</StackPanel>
Можно было бы подумать, что, возможно, есть именованная часть в шаблоне управления, которая использует элемент управления для обновления выбора - однако, the docs indicate no named parts. Итак, что здесь происходит, и как я могу заставить мой пример работать?