【发布时间】:2013-12-03 14:56:48
【问题描述】:
我正在尝试为 Silverlight RadioButton 创建一个控件模板,为每个项目使用一个 ToggleButton。我遇到的问题是选择机制似乎被破坏了。这是我正在使用的(简化的)样式:
<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。那么这里发生了什么,我怎样才能让我的示例正常工作?
【问题讨论】:
标签: silverlight xaml radio-button controltemplate