Z wiązania z P Mam natknąć się na problem asswordBox
. Wygląda na to, że stanowi to zagrożenie bezpieczeństwa, ale używam wzorca MVVM, więc chcę to ominąć. Znalazłem tutaj interesujący kod (czy ktoś używał tego lub czegoś podobnego?)
http://www.wpftutorial.net/PasswordBox.html
Technicznie wygląda świetnie, ale nie jestem pewien, jak odzyskać hasło.
Zasadniczo mam właściwości w moim LoginViewModel
for Username
i Password
. Username
jest w porządku i działa tak jak jest TextBox
.
Użyłem powyższego kodu i podałem go
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Kiedy miałem PasswordBox
jako a, TextBox
a Binding Path=Password
następnie właściwość LoginViewModel
została zaktualizowana.
Mój kod jest bardzo prosty, w zasadzie mam Command
dla siebie Button
. Kiedy naciskam, CanLogin
jest wywoływany, a jeśli zwraca true, wywołuje Login
.
Widzisz, sprawdzam tutaj swoją nieruchomość Username
, która działa świetnie.
W Login
wyślę razem z moim naprawiać Username
i Password
, Username
zawiera dane od mojego View
, ale Password
jestNull|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 { }
}
To właśnie robię
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Mam TextBox
, to nie jest problem, ale w moim jest pusty.ViewModel
Password
Czy robię coś złego lub brakuje mi kroku?
Ustawiłem punkt przerwania i na pewno kod wchodzi do statycznej klasy pomocnika, ale nigdy nie aktualizuje mojego Password
w moim ViewModel
.