window controlBir kullanıcının WPFbenim oluşturduğum bir uygulamaya giriş yapmasına izin vermek için a kullanarak bir Giriş oluşturuyorum.
Şimdiye kadar, kullanıcının giriş ekranında usernameve passworda için doğru kimlik bilgilerini girip girmediğini kontrol eden bir yöntem oluşturdum textbox, bindingiki properties.
Ben de bunu bir boolyöntem oluşturarak başardım ;
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();
}
Bir de bende var commandki gibi bindiçinde xamldüğmem var;
<Button Name="btnLogin" IsDefault="True" Content="Login" Command="{Binding ShowLoginCommand}" />
Kullanıcı adını ve şifreyi girdiğimde, ister doğru ister yanlış olsun, kendisine ait olan kodu çalıştırır. Ancak hem kullanıcı adı hem de şifre doğru olduğunda bu pencereyi ViewModel'den nasıl kapatabilirim?
Daha önce a kullanmayı denedim dialog modalama pek işe yaramadı. Ayrıca, app.xaml dosyamda, aşağıdaki gibi bir şey yaptım, bu ilk önce giriş sayfasını yükler, sonra doğru olduğunda gerçek uygulamayı yükler.
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);
}
}
Soru: Window controlViewModel'den Login'i nasıl kapatabilirim ?
Şimdiden teşekkürler.