我有一个继承自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 ......任何帮助?
答案 0 :(得分:0)
Window.ShowDialog
是查看页面所需的内容。但是你没有像你那样获得绑定信息;哪个也应该改变。
当文本框失去焦点时,它将更新绑定,因此代码
var be = NameBox.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();
不需要。 (这是一个剩余的winform编程形式吗?)所以我建议不要更新绑定。
如果未更新绑定,唯一可能的做法是更改绑定以使用TwoWay
模式,以确保绑定到屏幕上的变量和文本框之间的来回数据传输。