2013年01月18日

[C# WPF]Bindingソースの階層指定

今回はBindingソースの階層指定についてです。

xamlにBindingソースを"."で区切って指定する事で
DataContextで指定したオブジェクト以下の階層を辿って指定する事ができます。

サンプルはまた前回のものを変更して使用します。

まずはxamlを以下のように変更します。

<Grid>
<TextBox Height="23" Width="70" Margin="5"
HorizontalAlignment="Left" VerticalAlignment="Top"
Text="{Binding Data.Message}" />
<Button Content="Button" Height="23" Width="70" Margin="5,35,0,0"
HorizontalAlignment="Left" VerticalAlignment="Top"
Click="Button_Click"/>
</Grid>


Textプロパティの設定部分(赤字部分)を変更しています。
DataContextであるMainWindowオブジェクトのメンバから階層を辿って指定します。

次にcsコードを以下のように変更します。

public partial class MainWindow : Window
{
public string Message { get; set; }

public TestData Data { get; set; }

public MainWindow()
{
InitializeComponent();

Data = new TestData();

this.DataContext = this;
}

private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("MainWindow.Massage=" + Message + "\nTestData.Message=" + Data.Message);
}
}

public class TestData
{
public string Message { get; set; }

public TestData()
{
}
}


DataContextにはMainWindowクラスを指定しています。
xamlでMainWindowのメンバのTestDataオブジェクトの
Messageプロパティを辿って指定しているので
TextBoxに入力したデータはTestDataオブジェクトのMessageに設定されます。

実行結果は前回のサンプルと同じ結果になります。


posted by cw at 15:30| Comment(1) | Binding | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
とても分かりやすく勉強させていただいてます。
2番目のサンプルコードの
this.DataContext = this;
が赤文字ですね。
Posted by nabe at 2016年06月18日 15:10
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。