Se puede utilizar un valor-convertidor que revierte el valor booleano:
Con ese convertidor, enlazar una Checkbox.IsChecked-propiedad en el valor booleano sin el convertidor y una CheckBox.IsChecked-propiedad con el convertidor. Esto debería funcionar.
Aquí el código para un convertidor de este tipo. Lo he copiado desde here y he agregado algunas líneas de código. Allí encontrarás más información sobre.
public class BoolToOppositeBoolConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture) {
if (targetType != typeof(bool)) {
throw new InvalidOperationException("The target must be a boolean");
}
if (null == value) {
return null;
}
return !(bool)value;
}
public object ConvertBack(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture) {
if (targetType != typeof(bool)) {
throw new InvalidOperationException("The target must be a boolean");
}
if (null == value) {
return null;
}
return !(bool)value;
}
}
Para usarlo, declararlo en la sección de recursos.
<local:BoolToOppositeBoolConverter x:Key="BoolToOppositeBoolConverter_ValueConverter"/>
Y el uso en la unión como un recurso estático:
<CheckBox IsChecked="{Binding YourProperty}" />
<CheckBox IsChecked="{Binding YourProperty,Converter={StaticResource BoolToOppositeBoolConverter_ValueConverter}}" />
Tenga en cuenta, el convertidor no es más que un ejemplo sencillo. Impleméntelo ordenadamente si desea usarlo en el código productivo. No lo he probado. Haz un comentario si no está funcionando.
muchas gracias! – no9
Por alguna razón debo usar dos GroupNames diferentes. De lo contrario, el booleano en el modelo de vista se puede establecer en verdadero, pero nunca se restablece en falso (aunque los botones de radio parecen comportarse correctamente) – Qwertie
Hola, se te olvidó "/" para cerrar el segundo botón de opción. –