R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

データバインドの着火方法(その2)

http://blogs.wankuma.com/rti/archive/2008/06/06/141854.aspx
データバインドの着火方法

の続き・・・と言うかメモ。

foreach(Binding x in this.DataBindings)

とゴリゴリ書く必要はなかったです。

以下、なぐり書きコード。


public class MyTextBox : TextBox
  private string _Value;

  [Bindable(BindableSupport.Default)]
  public string Value {
    get { return this._Value; }
    set {
      if (this._Value == value) reurn;
      this._Value = value;
      NortifyPropertyChanged("Value")
    }
  }
  private void NortifyPropertyChanged(string propertyName) {
    var q =
        from Binding p in this.DataBindings
        where 
          p.IsBinding && 
          p.DataSourceUpdateMode == DataSourceUpdateMode.OnPropertyChanged && 
          p.PropertyName == propertyName
        select p;
    if (q.Count() == 0) return;
    q.First().WriteValue();
  }

}


赤字の部分は、必要に応じて変更した方が良いところです。

#ちょっと修正しましたw

投稿日時 : 2008年6月10日 13:27

Feedback

# re: データバインドの着火方法(その2) 2008/06/10 15:10 えムナウ

通常以下のパターンなんだが・・・
public class MyTextBox : TextBox, INotifyPropertyChanged

 :
 :

public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
 if (PropertyChanged != null)
 {
  PropertyChanged(this, new PropertyChangedEventArgs(info));
 }
}

# re: データバインドの着火方法(その2) 2008/06/10 15:34 R・田中一郎

あれ?

コントロール側のプロパティ値変更通知も INotifyPropertyChanged でいけるっすか?

# データバインドの着火方法(その3) 2008/06/11 13:12 R.Tanaka.Ichiro's Blog

データバインドの着火方法(その3)

# データバインドの着火方法(その3) 2008/06/11 13:13 R.Tanaka.Ichiro's Blog

データバインドの着火方法(その3)

タイトル
名前
Url
コメント