我有一个小的Dialog,我可以设置一个值。此对话框的视图只有一个TextBox和两个按钮。我将textbox.Text绑定到ViewModel中的属性TbText。通过一种行为,我从它的viewmodel关闭视图。打开此对话框的代码如下所示:
AddLineDialog dialog = new AddLineDialog();
bool? result = dialog.ShowDialog();
if(result.HasValue && result.Value)
{
//Here i need the Text from the closed dialog
}
...
关闭Dialog后,我需要访问Property TbText的值。我怎么能做到这一点?
答案 0 :(得分:2)
您可以将ViewModel或任何类绑定到Dialog的Datacontext:
AddLineDialog dialog = new AddLineDialog();
var vm = new LineDialogViewModel();
dialog.DataContext = vm;
然后将文本框绑定到类
中的属性 <textbox Value="{Binding MyProperty}">
在此之后你可以读出你的课程
if(dialog.ShowDialog())
{
var value = vm.MyProperty;
}
答案 1 :(得分:0)
在Source中使用INotifyPropertyChanged接口,然后在文本框中绑定应该如下所示
<TextBox Text={Binding Path=Name,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged} />
这是双向绑定,因此每当用户输入在源属性中更新的数据时也是如此。如果需要此数据,可以从用于绑定的模型属性进行访问。
希望上述解决方案可以帮助您解决问题