C# Can';t如果单选按钮为';它在自己的小组里吗?

C# Can';t如果单选按钮为';它在自己的小组里吗?,c#,wpf,radio-button,C#,Wpf,Radio Button,我有一套单选按钮。在某些情况下,我希望用户能够选择这些单选按钮中的多个 我使用的逻辑是,如果我希望用户只选择单选按钮中的一个,我将它们添加到同一个radiobuttongroup。如果我希望用户能够选择多个,我将每个添加到他们自己的radiobuttongroup 我遇到的问题是,当我单独选择一个组中的单选按钮时,我无法取消选择它 有人能告诉我为什么会发生这种情况,并建议一种不同的方法吗?使用复选框单选按钮不适用于此。单选按钮不能取消选中。在此上下文中,必须使用普通复选框。在复选框的选中事件中,

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

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

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


有人能告诉我为什么会发生这种情况,并建议一种不同的方法吗?

使用
复选框<代码>单选按钮不适用于此。

单选按钮不能取消选中。在此上下文中,必须使用普通复选框。在复选框的选中事件中,您可以取消选中其他复选框。这不是一个好方法,但它可以工作。

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

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

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

我记得我能够在旧的XAML/WPF项目上执行此操作。今天我想在XAML/WindowsPhone8上实现它,这似乎有点困难

幸运的是,我找到了这篇文章:

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

我希望这有帮助

干杯,
赫伯

如果你真的必须让复选框看起来像单选按钮(这不是一个好主意),如果你需要单选按钮的外观,你可以为复选框创建一种类似单选按钮的样式。@ChrisF:这是一件非常可怕的事情,因为大多数人都知道单选按钮的行为。