ฉันกำลังสร้างการเข้าสู่ระบบโดยใช้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 ได้อย่างไร?
ขอบคุณล่วงหน้า.