Saya telah menemukan masalah dengan mengikat ke P asswordBox
. Tampaknya ini adalah risiko keamanan tetapi saya menggunakan pola MVVM jadi saya ingin memotong ini. Saya menemukan beberapa kode menarik di sini (adakah yang pernah menggunakan ini atau yang serupa?)
http://www.wpftutorial.net/PasswordBox.html
Secara teknis tampak hebat, tetapi saya tidak yakin bagaimana cara mengambil kata sandi.
Saya pada dasarnya memiliki properti LoginViewModel
untuk Username
dan Password
. Username
baik-baik saja dan berfungsi sebagaimana mestinyaTextBox
.
Saya menggunakan kode di atas seperti yang dinyatakan dan memasukkan ini
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Ketika saya punya PasswordBox
sebagai TextBox
dan Binding Path=Password
kemudian properti di sayaLoginViewModel
diperbarui.
Kode saya sangat sederhana, pada dasarnya saya punya Command
untuk saya Button
. Ketika saya menekan itu CanLogin
dipanggil dan jika itu mengembalikan benar itu panggilan Login
.
Anda dapat melihat saya memeriksa properti saya di Username
sini yang berfungsi dengan baik.
Dalam Login
saya mengirim bersama untuk layanan saya Username
dan Password
, Username
berisi data dari saya View
tapi Password
adalahNull|Empty
private DelegateCommand loginCommand;
public string Username { get; set; }
public string Password { get; set; }
public ICommand LoginCommand
{
get
{
if (loginCommand == null)
{
loginCommand = new DelegateCommand(
Login, CanLogin );
}
return loginCommand;
}
}
private bool CanLogin()
{
return !string.IsNullOrEmpty(Username);
}
private void Login()
{
bool result = securityService.IsValidLogin(Username, Password);
if (result) { }
else { }
}
Inilah yang sedang saya lakukan
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Aku punya saya TextBox
, ini tidak masalah, tetapi dalam saya ViewModel
yang Password
kosong.
Apakah saya melakukan sesuatu yang salah atau melewatkan satu langkah?
Saya meletakkan breakpoint dan cukup yakin kode masuk ke kelas pembantu statis tetapi tidak pernah memperbarui saya Password
di saya ViewModel
.