在代码后面获取数据绑定属性

时间:2014-08-05 09:06:33

标签: c# wpf xaml windows-phone-8 code-behind

在我的XAML中,我有这个属性,就像一个魅力:

DataContext="{Binding Chat, Source={StaticResource Locator}}"

正确绑定,显示设计时间数据等。

但是现在我需要从textBox获取数据:

     <TextBox Text="{Binding MessageInput, Mode=TwoWay}"/>

我不知道如何从后面的代码访问这个textBox(或绑定的MessageInput字符串)。

2 个答案:

答案 0 :(得分:3)

丑陋的方式:

string res = (DataContext as [TypeOfYourViewModel]).MessageInput;

更好的方法:

<TextBox Name="tbMessageInput" ...>

string res = tbMessageInput.Text

答案 1 :(得分:1)

如果您需要访问text属性,则可以创建对viewmodel的引用并从那里获取文本。您可以将聊天ViewModel替换为我的代码中的viewmodel

private string GetText()
{
    ChatViewModel vm = this.DataContext as ChatViewModel;

    if(vm != null)
        return vm.MessageInput;
     else
        return string.Empty;
}