2014-11-25 43 views
0

我已經寫了一個基於通用前綴運算符的多重綁定轉換器,該轉換器接受綁定值的列表,可以是運算符或值,然後計算基於預定義值的值,定義的操作符集定義的行爲。WPF:引用可見性枚舉值MultiBinding綁定源

所以這樣的:

<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> 

這將返回#dddf05如果髒了,否則#F0F0F0。

所以這是非常方便的,因爲它幾乎是我現在需要的唯一轉換器,xaml是冗長的,但至少我不必爲每個特定情況編寫轉換器。

我的問題是,我想要做類似:

=

SomeVariable

可見

摺疊

並將其設置爲

<MyControl.Visible> 

即如果SomeVariable爲null,則返回Visible,否則返回Collapsed。但我無法引用Visibility值(或更一般地說,系統枚舉值),就像我參考上面的顏色值。我知道這一定是可能的,因爲人們可以很容易地直接引用這些值。

回答

2

您可以使用這些:

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

的XAML處理器將基本採取標籤的內部串並分析/將其轉換爲枚舉值。