【发布时间】:2018-03-31 09:38:52
【问题描述】:
【问题讨论】:
-
没错。良好的观察力。
【问题讨论】:
我认为您在这里想要的是相互排斥的按钮,我建议您编辑您的问题以使其清楚。
您可以将单选按钮设置为切换按钮,因为单选按钮内置了这种行为。
这是一个概念证明,向您展示这个想法。
<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 来迭代绑定的集合并应用您的逻辑。不管那是什么。