Wpf 已检查RadioButton的XAML双向绑定

Wpf 已检查RadioButton的XAML双向绑定,wpf,xaml,data-binding,radio-button,Wpf,Xaml,Data Binding,Radio Button,我正在尝试对WPF中的radiobutton应用双向绑定。在XAML中,我有以下内容: <RadioButton IsChecked="{Binding IsActive, Mode=TwoWay}"/> 因为我将模式设置为双向,所以我希望在切换radiobutton时,视图模型中的IsActive属性会相应更新。但是,IsActive的set中的值始终为真,因此单选按钮始终处于打开状态 我是否误解了radiobutton的双向属性,如果误解了,我该如何实现所需的效果?您不能通过单

我正在尝试对WPF中的radiobutton应用双向绑定。在XAML中,我有以下内容:

<RadioButton IsChecked="{Binding IsActive, Mode=TwoWay}"/>
因为我将模式设置为双向,所以我希望在切换radiobutton时,视图模型中的IsActive属性会相应更新。但是,
IsActive
set
中的
值始终为真,因此单选按钮始终处于打开状态


我是否误解了radiobutton的
双向属性,如果误解了,我该如何实现所需的效果?

您不能通过单击它来切换单个radiobutton。您可能需要在此处使用复选框或切换按钮

如果你想使用单选按钮,你必须至少使用两个。在每个RadioButton的IsActive属性的setter中,必须取消设置其他按钮

存在其他替代方法,例如,可以将所有单选按钮绑定到单个枚举属性并使用转换器。有关示例,请参见:

您的假设是正确的,默认情况下,IsChecked的绑定是双向的,因此您不需要在绑定中指定它。这里一定有别的东西在起作用,也许是另一个单选按钮导致了它的改变。您可以在IsActive集合中使用断点来查看属性值是如何更改的吗?同样从ToggleButton继承的复选框没有这个问题。我可以用它。@GlenThomas-value属性总是正确的。将RadioButton替换为复选框将提供正确的行为,即在true和false之间切换。哦,我明白了,您试图将RadioButton用作复选框?RadioButton控件需要在组中使用,其中只有一个控件可以被选中,而选中一个控件将取消选中组中的所有其他控件。很高兴知道。应使用复选框
private bool _isActive;

public bool IsActive
{
    get { return _isActive; }
    set
    {
        _isActive = value;
        OnPropertyChanged("IsActive");
    }
}