2013-10-18 92 views
6

私のチェックボックスIsCheckedプロパティバインディングが機能していないというこの問題があります。私はグーグルではありますが、人々はそれが私が使っているものであるTwoWayバインディングをshoudlしています。あなたは配列に結合されているので、これは任意のポインタが高く評価されている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}" 

コード:

OnPropertyChanged("Item[]"); 

インデクサを使用している場合、コンパイラによって生成されたプロパティ:

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

はこれを試してみてください。 this blog postを参照してください。

+0

ありがとう!しかし、私は階段を理解しやすいと感じています。 –

関連する問題