Tôi đã đi qua một vấn đề với ràng buộc vào một P asswordBox
. Có vẻ như đó là một rủi ro bảo mật nhưng tôi đang sử dụng mẫu MVVM vì vậy tôi muốn bỏ qua điều này. Tôi tìm thấy một số mã thú vị ở đây (có ai đã sử dụng cái này hoặc cái gì đó tương tự không?)
http://www.wpftutorial.net/PasswordBox.html
Về mặt kỹ thuật có vẻ tuyệt vời, nhưng tôi không chắc chắn làm thế nào để lấy lại mật khẩu.
Tôi về cơ bản có tài sản của tôi LoginViewModel
cho Username
và Password
. Username
là tốt và đang làm việc như nó a TextBox
.
Tôi đã sử dụng mã ở trên như đã nêu và nhập này
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Khi tôi có PasswordBox
một TextBox
và Binding Path=Password
sau đó tài sản trong tôi LoginViewModel
đã được cập nhật.
Mã của tôi rất đơn giản, về cơ bản tôi có một Command
cho tôi Button
. Khi tôi nhấn nó CanLogin
được gọi và nếu nó trả về đúng thì nó gọi Login
.
Bạn có thể thấy tôi kiểm tra tài sản của tôi Username
ở đây hoạt động tuyệt vời.
Trong Login
tôi gửi cùng với dịch vụ của tôi a Username
và Password
, Username
chứa dữ liệu từ của tôi View
nhưng Password
làNull|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 { }
}
Đây là những gì tôi đang làm
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Tôi có của tôi TextBox
, đây là không có vấn đề, nhưng trong tôi ViewModel
sự Password
trống.
Tôi đang làm gì đó sai hay thiếu một bước?
Tôi đặt một điểm dừng và chắc chắn rằng mã vào lớp trình trợ giúp tĩnh nhưng nó không bao giờ cập nhật Password
trong tôi ViewModel
.