WPF初始化问题

时间:2013-07-16 23:00:01

标签: c# .net wpf xaml

我有一个继承自MyWindow的班级Window。在MyWindow内,单击“确定”按钮后,我将执行以下方法:

private void OKButton_Click(object sender, RoutedEventArgs e)
    {
        var be = NameBox.GetBindingExpression(TextBox.TextProperty);
        be.UpdateSource();
        this.Close();
    }

XAML:

<Button Content="OK" 
        Click="OKButton_Click" 
        HorizontalAlignment="Left" 
        Margin="175,473,0,0" 
        VerticalAlignment="Top" 
        Width="75" 
        RenderTransformOrigin="-0.04,0.5"/>

在我初始化UI窗口的单独类中,我说

MainWindow window = new MainWindow(ViewModel);
window.Show();

然而,只要window.Show()被执行,后续代码就会执行,我实际上无法与我的窗口进行交互以完成我需要做的事情。我觉得这只是一个误解,如何在更大的背景下实际使用WPF ......任何帮助?

1 个答案:

答案 0 :(得分:0)

Window.ShowDialog是查看页面所需的内容。但是你没有像你那样获得绑定信息;哪个也应该改变。

当文本框失去焦点时,它将更新绑定,因此代码

 var be = NameBox.GetBindingExpression(TextBox.TextProperty);
 be.UpdateSource();

不需要。 (这是一个剩余的winform编程形式吗?)所以我建议不要更新绑定。

如果未更新绑定,唯一可能的做法是更改绑定以使用TwoWay模式,以确保绑定到屏幕上的变量和文本框之间的来回数据传输。