2017-10-30 9 views
1

私はcaliburn.microウェブサイトから取り組んでおり、この例があります。なぜパスワードがnullを返すのですか?ここで私が扱おうとしている例の写真を見てください。 enter image description hereなぜcaliburn.Microの説明が機能しないのですか?

マイview.xaml:

<StackPanel> 
    <TextBox x:Name="Username" /> 
    <PasswordBox x:Name="Password" /> 
    <Button x:Name="Login" Content="Log in" /> 
</StackPanel> 

そしてviewModel.cs中:私はログイン方法を発射するログインボタンを取得するために管理していると、それはユーザ名を示し

public void Login(string username, string password){ 
    MessageBox.show(password + " " + username) 
} 

が、パスワードは空白です。

+0

残りのモデルを示してください。 ViewModelにユーザー名とパスワード**プロパティ**の両方を持っていますか? – Nkosi

+0

明示的に 'cal:Message.Attach'を使用してみてください。 [ここ](https://caliburnmicro.com/documentation/actions)のように。ちょうどそれを狭めること。私はなぜそれが動作しないのか分かりません(私が覚えている限り、ガードシグネチャはアクションでなければならない、 'void'を返す、なぜ' string'を返すのか不明)。そして、はい、何か小さなものを繰り返して投稿してください。 – NSGaga

+0

@ Nkosi私はモデルで持っているすべての "プロパティ"としてそれらを持っていません。ユーザー名を返しますが、パスワードは空白です。プロパティ{get set}のようなプロパティですか? – Daniel

答えて

2

はViewModelに

public class LoginViewModel : PropertyChangedBase { 

    string username; 
    public string Username { 
     get { return username; } 
     set { 
      username = value; 
      NotifyOfPropertyChange(() => Username); 
      NotifyOfPropertyChange(() => CanLogin); 
     } 
    } 

    string password; 
    public string Password { 
     get { return password; } 
     set { 
      password = value; 
      NotifyOfPropertyChange(() => Password); 
      NotifyOfPropertyChange(() => CanLogin); 
     } 
    } 

    public bool CanLogin() { 
     return !String.IsNullOrEmpty(Username) && !String.IsNullOrEmpty(Password); 
    } 

    public void Login() { 
     MessageBox.show(Password + " " + Username) 
    } 
} 
1

例のプロパティの代わりに、パラメータがサポートされるプラットフォーム、特にSilverlightの、Windowsの携帯電話とUWPの一部に取り組んでいます別のフォーマットを使用することを検討してください。

WPFではPasswordBoxは、入力されたパスワードの依存関係プロパティを公開しません。フレームワークは、コントロールへのメソッド入力をバインドできません。

1つの方法は、コントロールから入力されたパスワードを公開する独自の添付プロパティを作成することです。

PasswordBoxの規約をカスタマイズして、新しいプロパティを使用することができます。

新しいバージョンのCaliburn.Microは、これらのプラットフォームの一部をサポートしなくなるため、ホームページ上のサンプルを再訪することがあります。

関連する問題