私は、試練プロジェクトでDataBindingで遊ぶのがちょっと残っています。私はフォームのメンバーにバインドしたいだけのスピンボックスを持つ単純なフォームを持っています。 VS IDEでVS2008双方向データバインディング:それを動作させるには?
class Form1 {
public class Data : System.ComponentModel.INotifyPropertyChanged {
int _value = 10;
public int value {get;set;}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
}
public Data data; // the member I want to bind to
}
、私のスピンボックスのプロパティのデータ部は、スピンボックスは10で初期化されていない私は、データソースとしてForm1.dataを選択することができますが、
- 私が期待する通り
- スピンボックスの値を変更しても、Data.valueの取得/設定は行われません。
そして、私はそれだけでは生きられません。何か案は?
public class Data : INotifyPropertyChanged {
int _value = 10;
public int Value {
get {return _value;}
set {
if(value != _value) {
_value = value;
OnPropertyChanged("Value");
}
}
}
protected virtual void OnPropertyChanged(string propertyName) {
var handler = PropertyChanged;
if(handler != null) {
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
しかし、他の(制御用: - - 自動的に実装プロパティを約INotifyPropertyChanged
を気にしない、あなたはそれを移動する必要がありますあなたのイベントは発生しません:オブジェクト=>コントロールの更新について