Как заставить главное окно ждать, пока вновь открытое окно не закроется в C# WPF?

Я новичок в WPF, а также C#, пожалуйста, потерпите со мной.

у меня есть главное окно, которое открывает новое окно. Теперь это новое окно-запрос на перезапись файла, и главное окно обращается к открытой переменной в новом окне, чтобы проверить результат запроса.

но я не могу заставить обработку главного окна ждать, пока новое окно не закроется.

 Window1 Win = new Window1();
 Win.Show();

 if (Win.pr_res == 1)
 {
      abc.Text = "File to be overwritten";
      File.Delete(_destination);
      Start();
 }
 else
 {
      abc.Text = "Operation Aborted";
 }

Я попытался добавить цикл while, проверяя другое открытое логическое значение в основном окно, но это просто зависает вся программа.

 while(!_closecheck);

любые предложения приветствуются.

4 ответов


использовать ShowDialog вместо Show -

Win.ShowDialog();

С MSDN -

открывает окно и возвращается только тогда, когда вновь откроется окно закрытый.


используйте метод ShowDialog (), поскольку он открывает окно и возвращает только тогда, когда вновь открытое окно закрыто.

синтаксис

Win.ShowDialog();

хотя ShowDialog отлично работает, вы можете установить MainWindow.IsEnabled = false Если вам не нравится, что модальное окно. Иногда полезно посмотреть главное окно.


вместо использования .Show () свойство для открытия/отображения окна, использовать .ShowDialog () вместо :)