0
private void btnConfirmInMyForm_Click(object sender, RoutedEventArgs e)
{
//for example without creating like this
MainWindow mainWin = new MainWindow();
mainWin.txtBirthDate.Text = "anything";
this.close();
}

当我尝试上述方法时,MainWindow(mianWin)的新实例的 txtBirthDate 的内容更改为“任何内容”,但不在当前的 MainWindow 中!换句话说,当我在 MyForm 中单击 btnConfirmInMyForm 时,它会打开一个新的 MainWindow,其中 txtBirthDate 文本框包含“任何内容”,这是我不想要的!我只想从 MyForm 设置 txtBirthDate,而不是创建一个包含它的新 MainWindow!

最诚挚的问候

4

2 回答 2

0

btnConfirmInMyForm_Click在你的窗口内吗?然后尝试

this.txtBirthDate.Text = "anything";
于 2013-08-18T12:18:35.527 回答
0

如果您MainWindow是应用程序的 MainWindow,那么您可以尝试以下操作:

private void btnConfirmInMyForm_Click(object sender, RoutedEventArgs e) {
  var mainWindow = Application.Current.MainWindow as MainWindow;
  if (mainWindow != null)
    mainWindow.txtBirthDate.Text = "anything";
}

如果不是,您可以将您的MainWindow对象传递给另一个对象Window,然后使用该对象并分配Text. 您还可以使用 MVVM 中的消息传递模式之类的东西跨视图发送消息。有很多选择。你选择什么几乎取决于你。

于 2013-08-18T12:35:35.877 回答