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

2019年4月18日

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);

おしまい。

スポンサーリンク

C#,WPFC#,WPF

Posted by peliphilo