2014-11-25 1 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은 장황합니다.하지만 적어도 모든 특정 사례에 대해 변환기를 작성할 필요는 없습니다.

제 문제는 다음과 같이하고 싶습니다.

?

=

표시

쓰러져

<MyControl.Visible> 

로 설정

SomeVariable 즉 널 SomeVariable가 null의 경우는 Visible를, 그렇지 않은 경우는 Collapsed를 돌려줍니다. 하지만 위의 색상 값을 참조하는 것처럼 가시성 값 (또는보다 일반적으로 시스템 열거 형 값)을 참조 할 수 없었습니다. 나는이 값들을 인라인으로 쉽게 참조 할 수 있기 때문에 어떻게 든 가능해야한다는 것을 안다.

답변

2

당신은이를 사용할 수 있습니다

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

XAML 프로세서는 기본적으로 태그의 내부 문자열을 구문 분석/열거 값으로 변환합니다.