【问题标题】:RadioButton Uncheck events not firing in WPF?单选按钮取消选中 WPF 中未触发的事件?
【发布时间】:2011-12-30 11:54:14
【问题描述】:

在我的 WPF 窗口中,我有 RadioButton,默认 IsChecked 属性为 true。 如何为取消选中 RadioButton 编写代码。 我尝试了 Sipmle 示例。 我选择一个单选按钮。

    <Grid>
    <RadioButton Height="16" Margin="54,103,104,0" GroupName="t" Name="radioButton1" VerticalAlignment="Top" IsChecked="True" Unchecked="radioButton1_Unchecked">Text</RadioButton>
</Grid>

 private void radioButton1_Unchecked(object sender, RoutedEventArgs e)
    {
        radioButton1.IsChecked = false;
    }

但它不起作用 有人可以帮忙吗?

拉姆基

【问题讨论】:

  • 您问了 14 个问题,但没有将一个标记为已回答...
  • 您的标题说明了一件事,而您的问题说明了另一件事。您想何时取消选中单选按钮?
  • 另外,既然你只有一个 RadioButton 也许你想要一个 Checkbox?
  • 为什么取消选中未选中的事件?问题是什么?
  • 考虑一个场景,您希望能够在组中仅选择一个项目或不选择任何项目。为此,您可以使用复选框并编写代码以确保一次仅选中一个,或者使用单选按钮并编写代码以取消选择选定的单选按钮。是的,有一种方法可以取消选择一个单选按钮而不选择另一个单选按钮。

标签: wpf


【解决方案1】:

首先,不能取消选中单选按钮。这没有任何意义。这就是您的事件不会被触发的原因。

现在,拥有一个 RadioButton 并不能帮助您实现任何目标:它们应该位于一组 RadioButtons 中。请改用 CheckBox。

然后在 UnChecked 事件中,您不必取消选中它:该事件被触发是因为它最初未被选中 =)

    <Grid>
        <CheckBox Height="16" Margin="54,103,104,0" GroupName="t" Name="checkBox1"
VerticalAlignment="Top" IsChecked="True" Unchecked="checkBox1_Unchecked">Text</CheckBox>
    </Grid>

     private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("checkBox1 has been unchecked!");
        }

【讨论】:

  • 感谢您的回复。现在我知道我的错误了。感谢您指导我
【解决方案2】:

如果您没有其他要检查的单选按钮,则不能取消选中!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2011-10-23
    • 1970-01-01
    相关资源
    最近更新 更多