在我的XAML中,我有这个属性,就像一个魅力:
DataContext="{Binding Chat, Source={StaticResource Locator}}"
正确绑定,显示设计时间数据等。
但是现在我需要从textBox获取数据:
<TextBox Text="{Binding MessageInput, Mode=TwoWay}"/>
我不知道如何从后面的代码访问这个textBox(或绑定的MessageInput字符串)。
答案 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;
}