2011-02-10 5 views
2

の値を得ることができない私持って、次のコードMonoTouch.Dialogは、テキストフィールド

public partial class AppDelegate : UIApplicationDelegate 
    { 
     UINavigationController _navigationController = new UINavigationController(); 

     public enum PrivacySetting { always, never, friends }; 

     LogInViewModel _login; 

     // This method is invoked when the application has loaded its UI and its ready to run 
     public override bool FinishedLaunching (UIApplication app, NSDictionary options) 
     { 
      // If you have defined a view, add it here: 
      // window.AddSubview (navigationController.View); 

      _login = new LogInViewModel 
      { 
       Privacy = PrivacySetting.always 
      }; 

      var _loginbindingcontext = new BindingContext(this, _login, "Login"); 
      var dialogcontroller = new DialogViewController(_loginbindingcontext.Root); 

      _navigationController.PushViewController(dialogcontroller, true); 

      window.AddSubview(_navigationController.View); 

      window.MakeKeyAndVisible(); 

      return true; 
     } 

     // This method is required in iPhoneOS 3.0 
     public override void OnActivated (UIApplication application) 
     { 
     } 

     public class LogInViewModel 
     { 

      [Section("Credentials")] 

      [Entry("Username")] 
      public string login; 

      [Caption("Password"), Password("Password")] 
      public string password; 

      [Section("Privacy")] 

      [Caption("Show Name")] 
      public PrivacySetting Privacy; 

      [Section ("Tap to Console")] 
      [OnTap ("tapme")] 
      public string TapMe; 
     } 

     public void tapme() 
     { 
      Console.WriteLine(_login.login);  
     } 
    } 

私は、テキストフィールドに記入しますが、私はTapMeをタップしたときに、私がnull値を取得するので、どのように私ができる、アプリケーションを実行しますmonotouch.dialogを使用してテキストフィールドの値を取得しますか?あなたが最初にこのように、バインディングコンテキストにfetch()を呼び出す必要があり

+0

'_login'は' tapme() '関数でも使用できません。どのようにログインプロパティーを取得していますか? –

+0

mmmm、LogInViewModel _login; AppDelegateクラスの "Global"変数 – dalexsoto

+0

はい、コンパイルできますが、値を取得できません。いつもNullを取得しています。( –

答えて

4

public void tapme() 
{ 
      _loginbindingcontext.Fetch(); 
      Console.WriteLine(_login.login);  
} 
0
_loginbindingcontext.Fetch(); 

これはDialogViewController内の要素の値を持つLogInViewModelを移入します。

BindingContextの参照を残して、Fetch()と電話する必要があります。

また、GitHub MonoTouch.MVVMで自分のプロジェクトをチェックすることができます。これにより、この種の作業が簡単になります。それはまだ行われておらず、唯一の概念証明ですが、私は積極的に取り組んでいます。 https://github.com/RobertKozak/MonoTouch.MVVM

+0

MVVMの文書化されたブログはありますか? – dalexsoto

+0

私がそれを文書化し始める前に、最初にやるべきことがいくつかあります。設計はいくつかの変更を経ているので、安定化するまではまだ文書化したくないので、今後数週間で大きなアップデートがあります。 –

関連する問題