Я пытаюсь применить двустороннюю привязку к радиообъекту в WPF. В XAML у меня есть следующие:XAML TwoWay Binding RadioButton IsChecked
<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
недвижимость для радиатора, и если да, то как мне добиться желаемого эффекта?
Вы правы в своих предположениях, и привязка IsChecked является TwoWay по умолчанию, поэтому вам не нужно указывать ее в привязке. Здесь должно быть что-то другое, может быть, другая радиокнопка вызывает его изменение. Можете ли вы использовать точку останова в наборе IsActive, чтобы узнать, как изменяется значение свойства? –
У этой проблемы нет CheckBox, которая также наследуется от ToggleButton. Я мог бы это использовать. –
@GlenThomas - Свойство value всегда верно. Замена RadioButton на CheckBox дает правильное поведение, т. Е. Переключает между true и false. –