答案 0 :(得分:-1)
我认为你想要的是相互排斥的按钮,我建议你编辑你的问题以使其清楚。
您可以将radiobuttons设置为togglebuttons,因为radiobuttons内置了此行为。
这是一个概念证明,可以向您展示这个想法。
<Window.Resources>
<Style BasedOn="{StaticResource {x:Type ToggleButton}}"
TargetType="RadioButton">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<StackPanel>
<RadioButton>A</RadioButton>
<RadioButton>B</RadioButton>
<RadioButton>C</RadioButton>
</StackPanel>
</Grid>
造型当然与您拥有的完全不同。 单击一个按钮,它会变为选中状态,您会看到该字母显示为红色。单击另一个,然后选中该选项并取消选中前一个。
这至少应该让你开始。
如果它没有完全按照你想要的那样做,你需要更好地控制逻辑,那么你可以将itemscontrol模板化到你的按钮中,然后使用一些linq来迭代绑定的集合并应用你的逻辑。不管是什么。