WPFでコードだけどバインドするときの例

csharp10WPFでデータバインドをコードだけで実現する方法がわかりにくかったのでメモ。XAMLだとサンプル例は見つかりやすいんだけど、コードだけの例は少なかった。WPFの主旨からはずれるのかな。     バインドされるクラス側のコード(プロパティ変更の通知あり)
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"));
XAMLも使ってバインドする時のXAML側
<Label Content="{Binding test}" name="label1"/>
XAMLも使ってバインドする時のコード側
obj = new Class1(1);
label1.DataContext = obj;