我知道我可以创建一个 setter 来检查值是否为 NULL 并执行某些操作。例子:
<TextBlock> <TextBlock.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding SomeField}" Value="{x:Null}"> <Setter Property="TextBlock.Text" Value="It's NULL Baby!" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock>
但是如何检查“非”值......如“NOT NULL”或“NOT = 3”?这在 XAML 中可能吗?
结果: 感谢您的回答…我知道我可以做一个值转换器(这意味着我必须编写代码,而这不会是我希望的纯 XAML)。但是,这确实回答了您不能在纯 XAML 中有效地“不”执行此操作的问题。然而,选择的答案可能显示了 创建 这种功能的最佳方式。很好的发现。
我在使用 DataTriggers 时遇到了类似的限制,看来您只能检查是否相等。我见过的可能对您有所帮助的最接近的事情是进行除相等以外的其他类型比较的技术。
这篇博文描述了如何在 DataTrigger 中进行 LT、GT 等比较。
正如 Robert Macnee 的回答所建议的那样,DataTrigger 的这种限制可以通过使用 Converter 将数据按摩成一个特殊的值来解决,然后您可以进行比较。