当数据绑定和应用转换器时否定布尔属性
当数据绑定和应用转换器时否定布尔属性
在XAML绑定标记中,可以否定布尔属性。不确定这是否是正确的描述。例如,我正在使用其中一个内置转换器,根据窗口是否处于活动状态来设置窗口边框控件的可见性。
我想要这样的反面,如果窗口处于活动状态,则将可见性设置为false。这只是一个例子,但我遇到过其他情况,希望可以对由标准转换器评估的布尔属性应用“!”,这样我就不必编写自定义转换器。
admin 更改状态以发布 2023年5月20日
可以在ViewModel中创建一个否定的属性:
public bool IsNotActive {get { return !IsActive; } }
并相应地通知更改,
-- 或者 --
使用一个InverseBoolToVisibilityConverter
:
public class InverseBoolToVisibilityConverter: BaseConverterMarkupExtension{ public override Visibility Convert(bool value, Type targetType, object parameter) { return !value ? Visibility.Visible : parameter != null ? Visibility.Hidden : Visibility.Collapsed; } public override bool ConvertBack(Visibility value, Type targetType, object parameter) { return value != Visibility.Visible; } }