开发者

MonoTouch.Dialog cannot get the values on textfields

I have the following code

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
           开发者_C百科 {
                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);    
        }
    }

i run the application then i fill in the textfields but when i tap on TapMe i get a null value, so how can i retrieve values on textfields using monotouch.dialog?


You need to first call Fetch() on the binding context, like this:

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


_loginbindingcontext.Fetch();

This will populate the LogInViewModel with the values from the Elements in the DialogViewController.

You will need to keep a reference in your ViewModel for the BindingContext so that you can call Fetch().

Alternatively, you can check out my project on GitHub MonoTouch.MVVM which makes these kinds of things easier. Its not done yet and its only a proof of concept but I am actively working on it. https://github.com/RobertKozak/MonoTouch.MVVM

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜