我正在尝试了解IsChecked
中RadioButton
属性的工作原理,因为我正在构建一个具有类似行为的自定义控件。
我需要的信息是RadioButton
在检查其他IsChecked
时自动将false
转为RadioButton
的方式。
参见示例:
<StackPanel>
<RadioButton Content="Info 1" IsChecked="True" />
<RadioButton Content="Info 2" />
</StackPanel>
如果我使用RadioButton
点击"Info 2"
,则其他广播将自动转为未选中。
但是如果收音机是这样的不同StackPanel
:
<StackPanel>
<StackPanel>
<RadioButton Content="Info 1.1" IsChecked="True" />
<RadioButton Content="Info 1.2" />
</StackPanel>
<StackPanel>
<RadioButton Content="Info 2.1" IsChecked="True" />
<RadioButton Content="Info 2.2" />
</StackPanel>
</StackPanel>
点击Info 1.1
后,Info 2.1
仍然会被检查。
我的自定义控件需要此行为。最干净的方法是如何做到的?
答案 0 :(得分:0)
RadioButton是一个控件,通常用作一组RadioButton控件中的项目。 RadioButton控件继承自ToggleButton类,而ToggleButton类继承自ButtonBase。因为RadioButton控件继承自ToggleButton,所以它们允许用户更改选择。 当RadioButton元素被分组时,按钮是互斥的。用户可以在RadioButton组内一次只选择一个项目。 在您的示例中,具有内容Info 1.1和Info 1.2的单选按钮因此共享相同的父控件 它们被分组,这意味着一次仅检查1个单选按钮,而具有内容Info 1.1和Info 2.1的单选按钮不共享相同的父控件,这意味着它们未被分组 因此,当选中Info 1.1时,它不会对Info2.1产生任何影响
答案 1 :(得分:0)
您可以从RadioButton
派生自定义控件。这样,只要您单击与同一父项分组的复选框之一,就可以切换IsChecked
的值。