を使用し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からこのウィンドウを閉じるにはどうすればよいですか?
以前にaを使ってみましたdialog modal
が、うまくいきませんでした。さらに、私のapp.xaml内で、次のようなことを行っています。これは、最初にログインページを読み込み、次にtrueになると実際のアプリケーションを読み込みます。
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からログインを閉じるにはどうすればよいですか?
前もって感謝します。