2013-10-18 3 views
6

이 체크 박스 IsChecked 속성 바인딩이 작동하지 않는 문제가 있습니다. 나는 봤지만, 사람들은 내가 사용하고있는 2Way 바인딩을 보여 주라고 말한다. 당신이 배열로 결합되어 있기 때문입니다 모든 포인터는 매우 감사합니다WPF 확인란 IsChecked 바인딩이 작동하지 않습니다.

 public bool[] LSMChannelEnable 
     { 
      get 
      { 
       return this._liveImage.LSMChannelEnable; 
      } 
      set 
      { 
       this._liveImage.LSMChannelEnable = value; 
       OnPropertyChanged("LSMChannelEnable"); 
       OnPropertyChanged("EnableChannelCount"); 
       OnPropertyChanged("LSMChannel"); 
      } 
     } 

,

+0

참고로 WPF 확인란은 이미 기본적으로 양방향 바인딩입니다. –

답변

12

: 여기

<CheckBox Name="ckC" VerticalAlignment="Center" 
      IsChecked="{Binding Path=LSMChannelEnable[2], 
           Mode=TwoWay, 
           UpdateSourceTrigger=PropertyChanged}" /> 

가 뒤에 C# 코드입니다 : 여기

내 코드입니다 . 별도의 속성에 바인딩하려는 속성을 밖으로 당깁니다.

XAML :

IsChecked="{Binding Path=ButtonEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 

코드 :

public bool ButtonEnabled 
{ 
    get { return this._liveImage.LSMChannelEnable[2]; } 
    set { this._liveImage.LSMChannelEnable[2] = value; 
     OnPropertyChanged("ButtonEnabled"); 
    } 
} 
+0

"public bool ButtonEnabled"를 의미합니까? – Karthik

+0

예! 고침, 고마워! –

+0

"public bool [] LSMChannelEnable"의 설정자에서 "OnPropertyChanged ("ButtonEnabled ")"를 실행하고 싶을 수도 있습니다. 그렇지 않으면 LSMChannelEnable에 다른 배열을 할당하려고하면 변경 될 수있는 bool 값이 버튼 상태에 반영되지 않습니다. – elgonzo

4

이 시도 : 인덱서를 사용할 때 컴파일러에 의해 생성

OnPropertyChanged("Item[]"); 

속성. this blog post을 참조하십시오.

+0

감사합니다. 그러나 나는 위층에서 이해하기가 더 쉽다고 생각한다. –

관련 문제