2013-01-14 2 views
0
여기

내가 리소스 섹션리소스에서 MultiBindning을 선언하고 컨트롤에서 사용할 수 있습니까?

<UserControl.Resources> 
    <MultiBinding Converter="{StaticResource ResourceKey=EnableConference}" 
        x:Key="EnableifConferenceIsNotNullAndIsStarted"> 
     <Binding Path="SelectedConference" Mode="OneWay"/> 
     <Binding Path="SelectedConference.ConferenceStatus" Mode="OneWay"/> 
    </MultiBinding> 
</UserControl.Resources> 

에 사용할 코드이고 나는 fallowing

<ComboBox><ComboBox.IsEnabled><StaticResource ResourceKey="EnableifConferenceIsNotNullAndIsStarted"></ComboBox.IsEnabled></ComboBox> 

가이 허용하고 유효하지 않은 말을하지 않는 같은 컨트롤이를 사용하려면 사용

답변

2

오류 메시지를 입력 꽤 분명하다

A '도난 tiBinding '은'MainWindow ' 유형의'Resources '속성에서 설정할 수 없습니다. 'MultiBinding'은 DependencyObject의 DependencyProperty 에서만 설정할 수 있습니다.

당신은 그러나 선택 상자의 스타일에서 바인딩을 선언 할 수 :

<Style TargetType="ComboBox" x:Key="MyComboBoxStyle"> 
    <Setter Property="IsEnabled"> 
     <Setter.Value> 
      <MultiBinding Converter="{StaticResource ResourceKey=EnableConference}"> 
       <Binding Path="SelectedConference" Mode="OneWay"/> 
       <Binding Path="SelectedConference.ConferenceStatus" Mode="OneWay"/> 
      </MultiBinding> 
     </Setter.Value> 
    </Setter> 
</Style> 

및 해당되는 경우 사용 : 그것은 물론입니다

<ComboBox Style="{StaticResource MyComboBoxStyle}"/> 

반드시 넣을 필요는 없다 이 스타일로. 우리가 이미 이러한 컨트롤에 할당 된 몇 가지 스타일을 가지고 있으므로 스타일 이외의 다른 방법으로 가능하다

<ComboBox> 
    <ComboBox.IsEnabled> 
     <MultiBinding Converter="{StaticResource ResourceKey=EnableConference}"> 
      <Binding Path="SelectedConference" Mode="OneWay"/> 
      <Binding Path="SelectedConference.ConferenceStatus" Mode="OneWay"/> 
     </MultiBinding> 
    </ComboBox.IsEnabled> 
</ComboBox> 
+0

: 당신은뿐만 아니라 직접 콤보 상자의 IsEnabled 속성에 MultiBinding을 할당 할 수 –

관련 문제