Вам не нужно делать это таким образом ...
определить в дочернем окне событие, подобное:
public event EventHandler Closing;
при создании этого окна в главном окне подписывайтесь на него:
Window1 wnd = new Window1();
wnd.Closing += new EventHandler(childClosing);
при закрытии дочернего окна проверить, подписано ли событие и вызвать его:
if (Closing != null) {
Closing(this, new EventArgs());
}
конечно, вам нужен метод childClosing в главном окне:
private void childClosing(object sender, EvenrArgs e) {
/// do your work
}
Если вам нужно передать некоторые данные обратно, вы создаете класс, производный от EvenrArgs, и используете его вместо этого. Но вам нужен делегат, отличный от Eventhandler, например:
class ClosingArgs : EventArgs {
// some property here
}
в дочернем окне
delegate void ClosingEventHandler(object sender, ClosingArgs e);
и
public event ClosingEventHandler Closing;
ура!