WPF. Cómo ocultar / mostrar la ventana principal desde otra ventana

Tengo dos ventanas MainWindow y Login. El botón que muestra el inicio de sesión ubicado en mainWindow

this.Hide(); Login li = new Login(); li.Show(); 

en la ventana de inicio de sesión es un botón que verifica la contraseña cómo puedo mostrar MainWindow si la contraseña es correcta?

pasar un parámetro a la ventana de inicio de sesión de tipo MainWindow. Eso permite que la ventana de inicio de sesión tenga una referencia a la ventana principal:

 this.Hide(); Login li = new Login(this); li.Show(); 

Y la ventana de inicio de sesión:

 private MainWindow m_parent; public Login(MainWindow parent){ m_parent = parent; } //Login Succesfull function private void Succes(){ m_parent.Show(); } 

la primera respuesta es buena pero creará una nueva ventana vacía para evitar este problema (redirigir a una ventana creada anteriormente) simplemente modifique el constructor de esta manera

  public Login(MainWindow parent):this() { m_parent = parent; } 

Qué pasa….

 this.Hide(); Login li = new Login(); if(li.ShowDialog() == DialogResult.OK){ //Do something with result this.Show(); } 

Asegúrate de que en tu Login tengas algo como …

 void OnLogin(){ if(ValidateLogin()){ this.DialogResult = DialogResult.OK; this.Close(); } } 

¿Qué tipo de diseño, etc. está utilizando para su interfaz de usuario? Si convierte la ventana de inicio de sesión en un diálogo modal, ¿debe ocultar la ventana principal?

Alternativamente, podría tener algún tipo de indicador de “inicio de sesión exitoso” y vincular la visibilidad de cada ventana a este valor: ¿usar convertidores para obtener el resultado deseado? Algo a lo largo de las líneas de:

     

¿Tiene sentido?

EDITAR: Obviamente, los elementos dentro de la Cuadrícula no pueden ser Windows, ¡de ahí mi pregunta inicial sobre el diseño que está usando!