WPF Закрывает родительский диалог при открытии дочернего диалога

#c# #wpf #asp.net-core

Вопрос:

Это и есть предполагаемый поток:

Откроется диалоговое окно входа -> Пользователь вводит имя пользователя и нажимает далее ->> Диалоговое окно входа закрывается ->>> Открывается диалоговое окно домена ->>>> Пользователь вводит имя домена и пароль ->>>>> Если правильно, диалоговое окно домена закрывается

Однако в настоящее время происходит то, что я прохожу через диалоговое окно входа в систему, и когда я нажимаю «Далее», открывается диалоговое окно «Домены», но предыдущее диалоговое окно все еще открыто.

Я не могу использовать Windows, потому что эта последовательность входа в систему останавливает загрузку основного окна до тех пор, пока пользователь не пройдет проверку подлинности. Или есть лучший способ сделать это?

На последовательность входа в систему ссылается другой проект.

Вот как я вызываю новый диалог в своем диалоговом окне входа:

 Domain domain = new Domain(configuration, Username);
domain.ShowDialog();
domain.Owner = this;
this.Owner.Hide();
this.Close();
 

Комментарии:

1. Попробуйте открыть диалоговое окно домена в главном окне, в случае успешного входа в систему диалоговое окно входа закроется с помощью возвращаемого диалогарезультата. Затем главное окно знает, что вход завершен, откройте диалоговое окно домена.

2. Разве это невозможно сделать так, как задумано?

3. Я думаю, что поток такой же, просто измените «диалог домена», вызывающий showdialog, с «диалога входа» на главное окно

4. Я не могу этого сделать, потому что диалоговое окно входа передает имя пользователя в диалоговое окно домена. Я могу установить его в приложении.Текущий. Свойства, но я не хочу прибегать к этому.

5. Вы можете сделать это без App.Current. Свойства, установите имя пользователя публичной переменной в диалоговом окне входа, главное окно может получить пропуск имени пользователя в диалоговое окно домена.

Ответ №1:

Вы можете попробовать открыть диалоговое окно домена в главном окне, установить имя пользователя публичной переменной в диалоговом окне входа. Затем главное окно может получить пропуск имени пользователя в диалоговое окно домена.