WPF:MultiBinding Binding Source中的Reference Visibility枚举值

时间:2014-11-25 08:33:29

标签: c# wpf enums visibility

我编写了一个基于通用前缀运算符的多绑定转换器,它接受一个可以是运算符或值的绑定值列表,然后根据定义的运算符集的预定义行为计算该值

所以这样:

<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。但我已经能够引用可见性值(或更一般地,系统枚举值),就像我引用上面的颜色值一样。我知道它必须是某种可能的,因为人们可以很容易地内联地引用这些值。

1 个答案:

答案 0 :(得分:2)

你可以使用这些:

<Visibility>Visible</Visibility>
<Visibility>Hidden</Visibility>
<Visibility>Collapsed</Visibility>

XAML处理器基本上将获取标记的内部字符串并将其解析/转换为枚举值。