2012-03-08 13 views
0

UserControlのテキストボックスをデータバインディングしています。双方向データバインディング:バインドされたプロパティを更新していないテキストボックスを更新します。

<TextBox Name="txtData" Text="{Binding MyData, Mode=TwoWay}"/> 

しかし、私は、ユーザーコントロールのテキストボックスtxtDatauserControl.MyData戻りnullにいくつかのテキストを入力した後、ユーザーコントロールをホストするページ上の[送信]ボタンをクリックしたとき。 TextChangedイベント以外のプロパティにtxtData.text値を割り当てるにはどうすればよいですか?

+0

あなたはバインディングが正しいと確信していますか?ユーザーコントロールのコンストラクタでMyDataの値を設定すると、テキストボックスにその値が表示されますか?はいの場合は、XAML全体を共有してください。 –

+0

いいえ、それはありません!私は何が間違っているのか分からない。 – devnull

+0

[データバインディング](http://msdn.microsoft.com/en-us/library/ms752347.aspx)について最初にお読みください。 –

答えて

1

TextBox.Textが変更されたときにuserControl.MyDataを更新したいとのご意見をお寄せください。結合斜視TextBox.Textから

は標的であり、MyDataので、厳密にこれを話すこと(ソースへ=>のMyDataに)結合OnWayToSourceある源である - そうINotifyPropertyChangedを実装する必要はありません。しかし、それは問題ではありません。

バインディングが現在書かれている方法では、MyDataプロパティは、TextBoxDataContextにありますか?データコンテキストを修正したり、他のバインディングソースを使用することもできます。 ElementNameまたはRelativeSource - もっとxamlを見ないと言うのが難しい。

バインディングにUpdateSourceTrigger=PropertyChangedを設定することも考えられます。

+0

そうです。 'MyData'プロパティは、' TextBox'の 'DataContext'にあります。 – devnull

関連する問題