Я стикався з проблемою зв'язування з P asswordBox
. Здається, це ризик для безпеки, але я використовую схему MVVM, тому я хочу її обійти. Я знайшов тут якийсь цікавий код (хтось користувався цим чи чимось подібним?)
http://www.wpftutorial.net/PasswordBox.html
Це технічно виглядає чудово, але я не впевнений, як отримати пароль.
В основному у мене є властивості LoginViewModel
для Username
і для Password
. Username
добре і працює так, як це TextBox
.
Я використав код вище, як зазначено, і ввів цей
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Коли я мав PasswordBox
як, TextBox
а Binding Path=Password
потім майно в моєму LoginViewModel
було оновлено.
Мій код дуже простий, в основному у мене є Command
свій Button
. Коли я натискаю, його CanLogin
називають, і якщо він повертає справжнє, він дзвонить Login
.
Ви можете бачити, що я перевіряю тут свою власність, Username
яка чудово працює.
У Login
Посилаю разом з моєю службою а Username
й Password
, Username
містить дані від мого , View
але Password
це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 { }
}
Це я і роблю
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
У мене є TextBox
, це не проблема, але в моєму порожньо.ViewModel
Password
Я роблю щось не так або пропускаю крок?
Я поставив точку перерви і досить впевнений, що код входить до статичного класу помічників, але він ніколи не оновлює Password
моє ViewModel
.