WPFでコードだけどバインドするときの例
WPFでデータバインドをコードだけで実現する方法がわかりにくかったのでメモ。XAMLだとサンプル例は見つかりやすいんだけど、コードだけの例は少なかった。WPFの主旨からはずれるのかな。
バインドされるクラス側のコード(プロパティ変更の通知あり)
コードだけでバインドする時
XAMLも使ってバインドする時のXAML側
XAMLも使ってバインドする時のコード側
Class Class1
{
private int _test;
public int test
{
get { return _test;}
set
{
_test = value;
OnPropertyChanged("test");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
public Class1(int x)
{
test = x;
}
}
obj = new Class1(1);
label1.DataContext = obj;
label1.SetBinding(Label.ContentProperty, new Binding("test"));
<Label Content="{Binding test}" name="label1"/>
obj = new Class1(1);
label1.DataContext = obj;