如何在WPF中绑定反向布尔属性?
如何在WPF中绑定反向布尔属性?
我有一个对象,它有一个IsReadOnly
属性。如果此属性为true,我希望将
我希望相信我可以像IsEnabled=\"{Binding Path=!IsReadOnly}\"
一样轻松地完成它,但WPF无法实现。
我是否只能通过所有样式设置?仅仅为了将一个bool设置为另一个bool的反向,看起来过于冗长。
admin 更改状态以发布 2023年5月20日
您可以使用一个值转换器来为您反转布尔属性。
XAML:
IsEnabled="{Binding Path=IsReadOnly, Converter={StaticResource InverseBooleanConverter}}"
转换器:
[ValueConversion(typeof(bool), typeof(bool))] public class InverseBooleanConverter: IValueConverter { #region IValueConverter Members 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"); return !(bool)value; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } #endregion }