我编写了一个基于通用前缀运算符的多绑定转换器,它接受一个可以是运算符或值的绑定值列表,然后根据定义的运算符集的预定义行为计算该值
所以这样:
<MenuItem.Background>
<MultiBinding Converter="{StaticResource ArithmeticsConverter}">
<Binding Source="?"/>
<Binding Path="IsDirty"/>
<Binding>
<Binding.Source>
<SolidColorBrush Color="#dddf05"/>
</Binding.Source>
</Binding>
<Binding>
<Binding.Source>
<SolidColorBrush Color="#F0F0F0"/>
</Binding.Source>
</Binding>
</MultiBinding>
如果为Dirty,则返回#dddf05,否则返回#f0f0f0。
所以这非常方便,因为它几乎是我现在唯一需要的转换器,xaml很冗长,但至少我不必为每个特定情况编写转换器。
我的问题是我想做类似的事情:
=
空
SomeVariable
可见
折叠
并将其设置为
<MyControl.Visible>
即。如果SomeVariable为null,则返回Visible,否则返回Collapsed。但我已经能够引用可见性值(或更一般地,系统枚举值),就像我引用上面的颜色值一样。我知道它必须是某种可能的,因为人们可以很容易地内联地引用这些值。
答案 0 :(得分:2)
你可以使用这些:
<Visibility>Visible</Visibility>
<Visibility>Hidden</Visibility>
<Visibility>Collapsed</Visibility>
XAML处理器基本上将获取标记的内部字符串并将其解析/转换为枚举值。