我试图将双向绑定应用于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
属性,如果是这样,我该如何实现预期的效果?
答案 0 :(得分:2)
您无法通过单击来切换单个RadioButton。你可能想在这里使用Checkbox或ToggleButton。
如果您想使用RadioButtons,则必须至少使用其中两个。在每个RadioButton的IsActive属性的setter中,你必须取消设置其他按钮。
存在其他替代方法,例如,您可以将所有RadioButtons绑定到单个枚举属性并使用转换器。有关示例,请参阅: http://wpftutorial.net/RadioButton.html