2013-04-29 6 views
0

이 속성은 세 변수에 의존하기 때문에 multibinding을 사용하여 단추의 IsEnabled 속성을 설정하려고합니다. Button.IsEnabled가 있지만 버튼의 IsEnabled 속성에 멀티 바인딩을 사용할 수없는 이유는 무엇입니까?

<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75"> 
        <Button.IsEnabled> 
         <????? 

그러나이 경우

:이 코드를 사용하려고

<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75"> 
        <Button.Content> 
         <MultiBinding Converter="{StaticResource myMultiValueConverter}"> 
          <Binding ElementName="MyElement"/> 
          <Binding /> 
         </MultiBinding> 
        </Button.Content> 
</Button> 

: 나는 내용 때에 프로퍼티를 설정한다면

,이 코드를 사용할 수 있습니다 다음 줄에서 Multibinding 키워드를 찾을 수 없으므로 IsEnabled 속성으로 멀티 바인딩을 사용할 수 없습니다.

왜? 다중 값 변환기로 IsEnabled 속성을 설정할 수있는 방법이 있습니까?

감사합니다.

답변

2

구문은 Button.Content에 대한 것과 동일해야합니다. "Content""IsEnabled"으로 바꿉니다. IsEnabled 속성은 부울 값이 아닌 MultiBinding 객체를 기대하기 때문에

<Button.IsEnabled> 
    <MultiBinding Converter="{StaticResource myMultiValueConverter}"> 
     <Binding ... /> 
     <Binding ... /> 
     <Binding ... /> 
    </MultiBinding> 
</Button.IsEnabled> 

그것은 자동 완성 당신을 위해 않을 수도 있지만 그것은 당신에게 오류를 제공하지해야하고, 컴파일하고 잘 실행됩니다.

+0

마지막으로 내가 Button.Content 컴파일

합니다 (Content 속성은 MultiBinding 객체를 포함 유형 object,이다 때문에의 Button.Content에 대한 자동 - 완료) 후 작동 한 후 컴파일의 IsEnabled에 의해 내용을 변경합니다. 감사. –

+0

@Rachel 여기서 유일한 문제는'UpdateSourceTrigger = "PropertyChanged"는 Binding을 트리거하지 않는다는 것입니다. 각'Binding' 요소와'MultiBinding' 요소에'UpdateSourceTrigger = "PropertyChanged"를 넣으려고했으나 업데이트하지 않았습니다. 나는 그것이 작동하도록 초점을 바꿔야한다. – Ozkan