Я створюю Логін за допомогою, window control
щоб дозволити користувачеві увійти в WPF
додаток, який я створюю.
До сих пір я створив метод , який перевіряє , чи набрав користувач в правильних облікових даних для username
і password
в textbox
на екрані входу, binding
два properties
.
Я домігся цього, створивши bool
метод, подібний тому;
public bool CheckLogin()
{
var user = context.Users.Where(i => i.Username == this.Username).SingleOrDefault();
if (user == null)
{
MessageBox.Show("Unable to Login, incorrect credentials.");
return false;
}
else if (this.Username == user.Username || this.Password.ToString() == user.Password)
{
MessageBox.Show("Welcome " + user.Username + ", you have successfully logged in.");
return true;
}
else
{
MessageBox.Show("Unable to Login, incorrect credentials.");
return false;
}
}
public ICommand ShowLoginCommand
{
get
{
if (this.showLoginCommand == null)
{
this.showLoginCommand = new RelayCommand(this.LoginExecute, null);
}
return this.showLoginCommand;
}
}
private void LoginExecute()
{
this.CheckLogin();
}
Я також маю command
що я bind
до моєї кнопки у тому числі xaml
так;
<Button Name="btnLogin" IsDefault="True" Content="Login" Command="{Binding ShowLoginCommand}" />
Коли я ввожу ім’я користувача та пароль, він виконує присвоєний код, правильний він чи неправильний. Але як я можу закрити це вікно з ViewModel, коли і ім’я користувача, і пароль правильні?
Раніше я намагався використовувати, dialog modal
але це не зовсім вдалося. Крім того, в моєму app.xaml я зробив щось на зразок наступного, яке спочатку завантажує сторінку входу, а потім, коли стає істинним, завантажує фактичну програму.
private void ApplicationStart(object sender, StartupEventArgs e)
{
Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
var dialog = new UserView();
if (dialog.ShowDialog() == true)
{
var mainWindow = new MainWindow();
Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
Current.MainWindow = mainWindow;
mainWindow.Show();
}
else
{
MessageBox.Show("Unable to load application.", "Error", MessageBoxButton.OK);
Current.Shutdown(-1);
}
}
Питання: Як я можу закрити Логін Window control
із ViewModel?
Заздалегідь спасибі.