WPF - 是否可以否定数据绑定表达式的结果?
WPF - 是否可以否定数据绑定表达式的结果?
我知道这个很好用:
...但我真正想做的是像下面的绑定表达式一样否定结果(psuedocode)。这可能吗?
admin 更改状态以发布 2023年5月22日
如果你想要除了bool以外的结果类型,我最近开始使用ConverterParameter来给自己提供将转换器的结果值取反的选项。这里有一个例子:
[ValueConversion(typeof(bool), typeof(System.Windows.Visibility))] public class BooleanVisibilityConverter : IValueConverter { System.Windows.Visibility _visibilityWhenFalse = System.Windows.Visibility.Collapsed; ////// Gets or sets the public System.Windows.Visibility VisibilityWhenFalse { get { return _visibilityWhenFalse; } set { _visibilityWhenFalse = value; } } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool negateValue; Boolean.TryParse(parameter as string, out negateValue); bool val = negateValue ^ (bool)value; //Negate the value using XOR return val ? System.Windows.Visibility.Visible : _visibilityWhenFalse; } ...value to use when the value is false. Defaults to collapsed. ///
这个转换器将bool转换为System.Windows.Visibility类型。参数允许在转换之前将bool取反,以便在需要反向行为时使用。你可以在像这样的元素中使用它:
Visibility="{Binding Path=MyBooleanProperty, Converter={StaticResource boolVisibilityConverter}, ConverterParameter=true}"