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 LoginViewModeluntuk Usernamedan Password. Usernamebaik-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 PasswordBoxsebagai TextBoxdan Binding Path=Passwordkemudian properti di sayaLoginViewModel diperbarui.
Kode saya sangat sederhana, pada dasarnya saya punya Commanduntuk saya Button. Ketika saya menekan itu CanLogindipanggil dan jika itu mengembalikan benar itu panggilan Login.
Anda dapat melihat saya memeriksa properti saya di Usernamesini yang berfungsi dengan baik.
Dalam Loginsaya mengirim bersama untuk layanan saya Usernamedan Password, Usernameberisi data dari saya Viewtapi PasswordadalahNull|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 ViewModelyang Passwordkosong.
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 Passworddi saya ViewModel.