【发布时间】:2018-09-20 14:41:24
【问题描述】:
我正在尝试使用特殊绑定进行比较发现 here 并在另一个问题上推荐。 NEQ 是一个添加的运算符,它只给出与 EQ 相反的结果。每次都会抛出 InvalidOperationException 并显示消息“‘绑定’必须具有非空值”。
我已经尝试在测试条件下将语句减少到仅{Binding SourceExpanded},甚至会引发相同的异常。
Source、SourceExpanded 和 SourceCollapsed 都是在与此样式关联的类中定义的依赖属性。
问题是您无法绑定到具有空值的依赖项属性吗?如果是这样,为什么属性值不允许为空?
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Property="IsExpanded" Value="True"/>
<Condition Binding="{local:ComparisonBinding SourceCollapsed, NEQ, {x:Null}}" Value="{x:Null}"/>
</MultiDataTrigger.Conditions>
<Setter Property="Source" Value="{Binding SourceExpanded}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Property="IsExpanded" Value="False"/>
<Condition Binding="{local:ComparisonBinding SourceCollapsed, NEQ, {x:Null}}" Value="{x:Null}"/>
</MultiDataTrigger.Conditions>
<Setter Property="Source" Value="{Binding SourceCollapsed}"/>
</MultiDataTrigger>
</Style.Triggers>
【问题讨论】: