SORU
27 EYLÜL 2009, Pazar


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
10 Ocak 2011, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • funbro1

    funbro1

    11 Aralık 2007
  • gsipek

    gsipek

    20 Temmuz 2007