RadioButton IsChecked的XAML TwoWay绑定

时间:2016-01-06 09:12:30

标签: wpf xaml data-binding radio-button

我试图将双向绑定应用于WPF中的单选按钮。在XAML中,我有以下内容:

<RadioButton IsChecked="{Binding IsActive, Mode=TwoWay}"/>

并且在相应的ViewModel中我有

private bool _isActive;

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

因为我将模式设置为TwoWay我期望当我切换radiobutton时,视图模型中的IsActive属性会相应地更新。但是,value set中的IsActive始终为真,因此无线电按钮始终处于开启状态。

我是否误解了放射性按钮的TwoWay属性,如果是这样,我该如何实现预期的效果?

1 个答案:

答案 0 :(得分:2)

您无法通过单击来切换单个RadioButton。你可能想在这里使用Checkbox或ToggleButton。

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

存在其他替代方法,例如,您可以将所有RadioButtons绑定到单个枚举属性并使用转换器。有关示例,请参阅: http://wpftutorial.net/RadioButton.html