小智 17
您可以做的是在打开第二个窗口之前将主窗口指定为其所有者,然后从模态窗口调用Owner属性,将其转换为MainWindow对象,您将能够执行该方法.
// Code in main window
ModalWindow window = new ModalWindow();
window.Owner = this;
window.ShowDialog()
//Code on the modal window
var myObject = this.Owner as MainWindow;
myObject.MyMethod(); // Call your method here.
Run Code Online (Sandbox Code Playgroud)
小智 5
public class ModalWindow : Window
{
private MainWindow _parent;
public ModalWindow(MainWindow parent)
{
_parent = parent;
Owner = parent;
}
void CallParent()
{
_parent.Call();
}
}
Run Code Online (Sandbox Code Playgroud)
我建议这种模式是代码味道.
如果您的目标是将信息从模态传递到父模式,最好在模态窗口上公开属性,并在关闭后读取这些值并执行父项中所需的任何操作.
如果您的目标是将信息从父级传递给模态,则在调用之前将其传递给构造函数或公共属性 ShowDialog().