如果单选按钮在自己的组中,则无法取消选中它?

时间:2012-03-23 11:11:50

标签: c# wpf radio-button

我有一组单选按钮。在某些情况下,我希望用户能够选择多个这些单选按钮。

我使用的逻辑是,如果我希望用户只选择单选按钮,我将它们添加到同一个radiobuttongroup。如果我希望用户能够选择多个,我将每个添加到他们自己的radiobuttongroup。

我遇到的问题是,当我单独选择一个组中的单选按钮时,我就不能取消选择它。

有人可以告诉你为什么会这样,并建议采用不同的方式吗?

5 个答案:

答案 0 :(得分:8)

使用CheckBoxesRadioButtons 不适用于此。

答案 1 :(得分:3)

Radiobuttons无法取消选中。您必须在此上下文中使用常规复选框。在复选框的Checked Event中,您可以取消选中其他复选框。它不是一个好方法,但它的工作原理。

答案 2 :(得分:1)

WFP中的RadioButton有一个布尔属性IsChecked,可以设置为false。要重置组中的单选按钮,您应该将IsChecked设置为false(或仅适用于IsChecked为真的单选按钮。)

答案 3 :(得分:0)

如果选中选中的单选按钮,则绑定会将值设置为true。如果当前值和建议值为true,则将其设置为false。嘿,它适合我。

    public bool chcked 
    {
        get { return c; }
        set 
        {
            if (c && value)
            {
                c = false;
                return;
            }
            c = value; 
        } 
    }

答案 4 :(得分:0)

我记得我能够在一个旧的XAML / WPF项目上做到这一点。今天我一直在寻找它在XAML / Windows Phone 8上实现这一点,这似乎很难做到。

幸运的是我找到了这篇文章: http://social.msdn.microsoft.com/Forums/vstudio/en-US/f0f6587b-8a08-4c6c-b071-802d104a35da/how-to-uncheck-all-radiobuttons-in-a-group?forum=wpf

基本上,对于进入同一组的所有按钮,您必须将IsChecked设置为False。 (顺便说一句,我已将IsThreeState设置为默认值)。

我希望这会有所帮助。

干杯, 数量锐减