xamlでなく、ソースからバインド設定をするには、SetBinding メソッドを使用します。
(例)
Button myButton01 = new Button(); // Content に「MyString01」というプロパティとのバインディング設定を追加 myButton01.SetBinding(Button.ContentProperty, nameof(MyString01)); // Command に「SaveCommand」というリレーコマンドとのバインディング設定を追加 myButton01.SetBinding(Button.CommandProperty, nameof(SaveCommand)); //あとは適当に配置。
「MyString01」という stringを返すプロパティと、
「SaveCommand」というリレーコマンドが定義済みとしています。
上記のソースは、以下のような Xamlを記述した場合と同じ動きをします。
<Button Content="{Binding Path=MyString01}" Command="{Binding Path=SaveCommand}" />
SetBinding の第二引数に、バインディングの対象にしたい”文字列”を設定します。
なので、上記のソースは、以下のように書くこともできます。
myButton01.SetBinding(Button.ContentProperty, "MyString01"); myButton01.SetBinding(Button.CommandProperty, "SaveCommand");
ただ、この書き方だと、リファクタリングに弱くなり、コードジャンプ機能も使えないので、nameof を使用した方がメンテナンス時の労力を軽減できます。