#c_sharp #wpf
В моей программе на WPF я использую библиотеку MahAps.Metro и при запуске программы я хочу отображать диалоговое окно, где можно будет ввести логин/пароль. Но выдает ошибку System.InvalidOperationException. Не пойму, в чем дело. Может потому что метод, отображающий окно, в конструкторе вызываю? public MainWindow() // Конструктор { InitializeComponent(); LogIn(); } private async void LogIn() { LoginDialogData result = await this.ShowLoginAsync("Authentication", "Enter your credentials", new LoginDialogSettings { ColorScheme = this.MetroDialogOptions.ColorScheme, InitialUsername = "MahApps" }); } У меня есть код, обрабатывающий нажатие кнопки. При нажатии возникает диалоговое окно, где можно вести логин/пароль. Внутри обработчика нажатия на копку все работает, но если этот код скопировать в метод выше, то опять будет та же ошибка... private async void buttonLogOut_Click(object sender, RoutedEventArgs e) { var title = "Enter your credentials"; var settings = new LoginDialogSettings { ColorScheme = MetroDialogOptions.ColorScheme }; while (true) { var result = await this.ShowLoginAsync("Authentication", title, settings); if (result.Username == "dima" && result.Password == "123456") break; title = "Wrong data, try again"; } }
Ответы
Ответ 1
Исходя из сообщения об ошибке, нужно запускать LogIn после загрузки окна: public MainWindow() // Конструктор { InitializeComponent(); Loaded += (o, args) => LogIn(); }
Комментариев нет:
Отправить комментарий