我尝试使用特殊绑定进行比较here并在另一个问题上推荐。 NEQ
是一个添加的运算符,只会给出EQ
的相反结果。每次都会发出InvalidOperationException
消息"必须为' Binding'"
在测试条件下,我尝试将语句简化为{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>
答案 0 :(得分:0)
我知道这有点晚了,您一定已经解决了您的问题,如果没有,这里是解决问题的方法。
您需要更改
<Condition Property="IsExpanded" Value="True"/>
至
<Condition Binding="{Binding IsExpanded, RelativeSource={RelativeSource Self}}" Value="True" />
答案 1 :(得分:0)