私はサイズが4のブール配列を持ち、各セルを別のコントロールにバインドしたいと考えています。 このbool配列は4つのステータスを表します(false =失敗、true =成功)。bool []内の値に対してINotifyPropertyChanged機能を実現するにはどうすればよいですか?
class foo : INotifyPropertyChanged {
...
private bool[] _Statuses;
public bool[] Statuses
{
get {return Statuses;}
set {
Statuses = value;
OnPropertyChanged("Statuses");
}
}
XAMLで各アレイの一つのセルに結合し、4つのコントロールがあります: このブール配列は、クラスとproperyは
... Text="{Binding Path=Statuses[0]}" ...
... Text="{Binding Path=Statuses[1]}" ...
... Text="{Binding Path=Statuses[2]}" ...
... Text="{Binding Path=Statuses[3]}" ...
問題は、イベントが通知することです私は配列自体を変更する場合にのみ上昇し、私は、配列内の値を変更するときに発生されていない、すなわち、次のコード行は、イベントが発生します。
Statuses = new bool[4];
が、次の行にも上げていませんt:
Statuses [0] = true;
1つのセルが変更されるたびにイベントを発生させるにはどうすればよいですか?
はい、のObservableCollectionを使用して行くための最も簡単な方法となります。 –
'ObservableCollection'は、内部の項目の値が変更されたときに通知しません。 –
decyclone
@decyclone:コレクションのn番目のアイテムが移動、置換などされているかどうかを通知します。これはOPのコードと同じです。 Tがプロパティを持ち、INotifyPropertyChangedを実装していないケースを処理できないという点で正しいですが、質問の範囲外であると考えました。 –