XAML 'NOT' 运算符?
Posted
技术标签:
【中文标题】XAML \'NOT\' 运算符?【英文标题】:XAML 'NOT' operator?XAML 'NOT' 运算符? 【发布时间】:2010-11-22 00:02:53 【问题描述】:<Button IsEnabled="Binding (Not IsDisabled)" />
有没有办法用纯 xaml 来做,或者我必须通过代码来做? PS。我问了这个问题,知道我可以像这样创建一个布尔转换器:
<ValueConversion(GetType(Boolean), GetType(Boolean))>
Public Class BooleanFlagSwitchConverter : Implements IValueConverter
Public Function Convert(value As Object, targetType As Type,
parameter As Object, culture As CultureInfo) As Object
Implements IValueConverter.Convert
Return Not value
End Function
Public Function ConvertBack(value As Object, targetType As Type,
parameter As Object, ByVal culture As CultureInfo) As Object
Implements IValueConverter.ConvertBack
Return Not value
End Function
End Class
[ValueConversion(typeof(bool), typeof(bool))]
public class BooleanFlagSwitchConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
return !(bool)value;
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
return !(bool)value;
【问题讨论】:
我认为这是首选 是肯定的。 :) 【参考方案1】:我会推荐使用https://quickconverter.codeplex.com/
反转一个布尔值就这么简单:
<Button IsEnabled="qc:Binding '!$P', P=Binding IsDisabled)" />
这加快了编写转换器通常所需的时间。
【讨论】:
是的,根据我上面链接的网站的文档。示例:Height="qc:Binding '$P * 10', ConvertBack='$value * 0.1', P=Binding TestWidth, Mode=TwoWay"
【参考方案2】:
它不存在。查看properties on the Binding 类。除了可以做你想做的事情的转换器之外,别无他法。
【讨论】:
以上是关于XAML 'NOT' 运算符?的主要内容,如果未能解决你的问题,请参考以下文章