Skip to content

[WPF] コードビハインドでRelativeSource/Converterを設定する

RelativeSouceとConverterの設定をXamlで書けないときがあって、少し探すのに手間取ったので備忘録。
このとき実現したかったのは、テンプレートの中で宣言したTextBoxに対してBindingしたい、だったはず。

TextBoxのTextPropertyに親クラスの依存関係プロパティ”MyValue”をBindingしつつ、コンバータも設定する場合のサンプルです。
コンバータは普通に突っ込めばいいのですが、RelativeSourceの記述がよくわからなくて悩みました。

Binding b = new Binding("MyValue");
b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, GetType(), 1);
b.Mode = BindingMode.TwoWay;
b.Converter = new MyValueToStringConverter();
myTextBox.SetBinding(TextBox.TextProperty, b);

おしまい。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください