.Net Core解决方案
处理空情况并且不会抛出异常,但如果没有值则返回true
;否则获取输入的布尔值并反转它。
public class BooleanToReverseConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
=> !(bool?) value ?? true;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
=> !(value as bool?);
}
Xaml
IsEnabled="{Binding IsSuccess Converter={StaticResource BooleanToReverseConverter}}"
App.Xaml 我喜欢将所有的转换器静态资源放在 app.xaml 文件中,这样我就不必在项目的窗口/页面/控件中重新声明它们。
<Application.Resources>
<converters:BooleanToReverseConverter x:Key="BooleanToReverseConverter"/>
<local:FauxVM x:Key="VM" />
</Application.Resources>
明确一下,converters:
是指实际类实现的命名空间(xmlns:converters="clr-namespace:ProvingGround.Converters"
)。