MVVM从关闭窗口获取值

时间:2013-01-29 08:50:31

标签: c# wpf mvvm

我有一个小的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的值。我怎么能做到这一点?

2 个答案:

答案 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} />

这是双向绑定,因此每当用户输入在源属性中更新的数据时也是如此。如果需要此数据,可以从用于绑定的模型属性进行访问。

希望上述解决方案可以帮助您解决问题