1

我试图了解该IsChecked属性的RadioButton工作原理,因为我正在构建一个具有类似行为的自定义控件。

我需要的信息是在检查other 时如何RadioButton自动IsChecked转向。falseRadioButton

请参阅示例:

<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仍然选中。

我的自定义控件需要这种行为。最干净的方法是如何做到这一点?

4

2 回答 2

0

RadioButton 是一个控件,通常用作一组 RadioButton 控件中的一个项目。RadioButton 控件继承自 ToggleButton 类,而后者又继承自 ButtonBase。因为 RadioButton 控件继承自 ToggleButton,它们使用户能够更改选择。当 RadioButton 元素被分组时,按钮是互斥的。用户一次只能在 RadioButton 组中选择一项。在您的示例中,具有内容 Info 1.1 和 Info 1.2 的单选按钮共享相同的父控件,因此它们被分组,这意味着一次只检查 1 个单选按钮,而具有内容 Info 1.1 和 Info 2.1 的单选按钮不共享相同的父控件表示它们没有分组,因此当检查 Info 1.1 时,它不会对 Info2.1 产生任何影响

于 2013-06-03T12:39:05.047 回答
0

您可以从RadioButton. 这样,IsChecked每当您单击与同一父级分组的复选框之一时,都会切换 的值。

于 2019-06-25T03:20:42.107 回答