Nasıl MVVM bir PasswordBox bağlamak
Bir PasswordBox bağlama ile ilgili bir sorun rastlamak var. Bu bir güvenlik riski var ama bu atlamak için keşke bu kadar MVVM desen kullanarak olacak gibi görünüyor. Bazı ilginç kod burada (herkes kullanılan bu veya buna benzer bir şey var mı?) buldum
http://www.wpftutorial.net/PasswordBox.html
Teknik olarak harika görünüyor, ama şifre almak için nasıl emin değilim.
Ben temelde ** 5 Username
Password
benim özellikleri var. Username
güzel ve TextBox
olarak çalışıyor.
Belirtildiği gibi yukarıdaki kod kullandım ve bu girdi
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
TextBox
Binding Path=Password
o zaman benim içinde bir özellik olarak PasswordBox
vardı LoginViewModel
güncellenmiştir.
Benim kod çok basit, temelde Button
benim Command
bir ben var. Ben basın CanLogin
denir ve eğer doğru döndürür Login
çağırır.
Benim malım mülküm kontrolü çok iyi çalışan Username
burada görebilirsiniz.
Login
benim servise gönderin Username
Password
, Username
benim verileri View
içerir ama 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 { }
}
Bu ben ne yapıyorum
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Benim TextBox
Bu sorun var, ama benim ViewModel
Password
boş.
Yanlış bir şey yapıyor ya da bir adım eksik muyum?
Bir kesme koydum ve emin yeterli kod statik yardımcı sınıfına girer ama asla güncellemeler Password
ViewModel
benim.
CEVAP
Benim 2 sent:
Bir zamanlar tipik bir oturum açma iletişim kutusu "" tuşunu kullanarak WPF ve MVVM kullanarak. Tamam artı (kullanıcı ve parola kutuları, geliştirdim Sadece PasswordBox komutu "" düğmesine basın. Ok bağlı bir parametre olarak kendisi kontrol geçirerek parola bağlama sorunu çözdüm Görünümünde kaldım:
<PasswordBox Name="txtPassword" VerticalAlignment="Top" Width="120" />
<Button Content="Ok" Command="{Binding Path=OkCommand}"
CommandParameter="{Binding ElementName=txtPassword}"/>
Ve ViewModel, ekli komut Execute
yöntemi aşağıdaki gibi oldu
void Execute(object parameter)
{
var passwordBox = parameter as PasswordBox;
var password = passwordBox.Password;
//Now go ahead and check the user name and password
}
Bu biraz artık ViewModel Görünümü nasıl uygulanır hakkında bir şeyler bildiği için MVVM desen ihlal ediyor, ancak bu özel bir proje yer alacak gücüm yoktu. Birileri için de faydalı olur umarım.
AngularJS : liste bağlamak için Nasıl ...
Nasıl bir numaralama için RadioButtons...
Nasıl NSURLConnection bağlamak için gü...
Nasıl WPF ters boolean özelliklerini b...
Nasıl Nakavt veri bağlamak için JS-oda...