【问题标题】:Can't uncheck RadioButton if it's in its own group?如果 RadioButton 在自己的组中,不能取消选中它吗?
【发布时间】:2013-12-31 00:20:02
【问题描述】:

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

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

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

有人可以告知为什么会发生这种情况并建议一种不同的方法吗?

【问题讨论】:

    标签: c# wpf radio-button


    【解决方案1】:

    使用CheckBoxesRadioButtons 不是为此而设计的。

    【讨论】:

    • 如果你真的必须让你的复选框看起来像单选按钮(这不是一个好主意),你可以为你的复选框创建类似于单选按钮的样式,如果你需要它们看起来 某种方式。
    • @ChrisF:这将是一件非常可怕的事情,因为大多数人都知道 RadioButtons 应该如何表现。
    【解决方案2】:

    单选按钮不能取消选中。在这种情况下,您必须使用普通复选框。例如,在复选框的选中事件中,您可以取消选中另一个复选框。这不是一个好方法,但它确实有效。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您选择选中的单选按钮,则绑定将值设置为 true。如果当前值和建议值为真,则将其设置为假。嘿,它对我有用。

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

        【讨论】:

          【解决方案5】:

          我记得我能够在一个旧的 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 设置为默认值)。

          我希望这会有所帮助。

          干杯, 赫伯

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-12-07
            • 1970-01-01
            • 2021-09-25
            • 1970-01-01
            • 2010-11-25
            • 2011-05-22
            • 2021-11-16
            • 2018-06-09
            相关资源
            最近更新 更多