public PaymentViewController(string title) : base(UITableViewStyle.Grouped, null, true) { var eleCardNumber = new EntryElement(string.Empty, "Kort nummer", this.ViewModel.CardNumber) { KeyboardType = UIKeyboardType.NumberPad }; var eleExpirationDate = new StringElement("Udløbs dato", this.ViewModel.ExpirationDate.ToString("MM-yy")); var eleSecurityCode = new EntryElement(string.Empty, "Sikkerheds kode", this.ViewModel.SecurityCode) { KeyboardType = UIKeyboardType.NumberPad }; this.Root = new RootElement(title) { new Section { eleCardNumber, eleExpirationDate, eleSecurityCode } }; eleCardNumber.BindText(this.ViewModel, vm => vm.CardNumber); eleExpirationDate.BindText(this.ViewModel, vm => this.ViewModel.ExpirationDateText); eleSecurityCode.BindText(this.ViewModel, vm => this.ViewModel.SecurityCode); eleExpirationDate.Tapped += this.EleExpirationDateOnTapped; this.toolbar = new UIToolbar(new CGRect(0, 0, 320, 44)); this.toolbar.SetItems(new[] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), new UIBarButtonItem(UIBarButtonSystemItem.Done, (s, e) => this.View.EndEditing(true)), }, false); }
public override void ViewDidLoad() { base.ViewDidLoad(); var eleFirstName = new EntryElement(string.Empty, "Fornavn", this.ViewModel.FirstName) { AutocapitalizationType = UITextAutocapitalizationType.Words, AutocorrectionType = UITextAutocorrectionType.No }; var eleLastName = new EntryElement(string.Empty, "Efternavn", this.ViewModel.LastName) { AutocapitalizationType = UITextAutocapitalizationType.Words, AutocorrectionType = UITextAutocorrectionType.No }; var eleEmail = new EntryElement(string.Empty, "Email", this.ViewModel.Email) { KeyboardType = UIKeyboardType.EmailAddress, AutocorrectionType = UITextAutocorrectionType.No, AutocapitalizationType = UITextAutocapitalizationType.None }; var elePassword = new EntryElement(string.Empty, "Kodeord", this.ViewModel.Password, true); var elePasswordRepeat = new EntryElement(string.Empty, "Gentag kodeord", this.ViewModel.PasswordRepeat, true); var eleUsername = new EntryElement(string.Empty, "Brugernavn", this.ViewModel.Username) { AutocorrectionType = UITextAutocorrectionType.No, AutocapitalizationType = UITextAutocapitalizationType.None }; this.Root = new RootElement("Registrer") { new Section("Personlige oplysninger") { eleFirstName, eleLastName, }, new Section("Konto oplysninger") { eleEmail, elePassword, elePasswordRepeat, eleUsername } }; eleFirstName.BindText(this.ViewModel, vm => vm.FirstName); eleLastName.BindText(this.ViewModel, vm => vm.LastName); eleEmail.BindText(this.ViewModel, vm => vm.Email); elePassword.BindText(this.ViewModel, vm => vm.Password); elePasswordRepeat.BindText(this.ViewModel, vm => vm.PasswordRepeat); eleUsername.BindText(this.ViewModel, vm => vm.Username); }
public CreateAccountViewController() : base(UITableViewStyle.Grouped, null, true) { this.ViewModel = new CreateAccountViewModel(); var eleAcceptTos = new BooleanElement("Accept", this.ViewModel.ToS); eleAcceptTos.BindValue(this.ViewModel, vm => vm.ToS); var eleFirstName = new EntryElement("First name", "Enter first name", this.ViewModel.FirstName); eleFirstName.BindText(this.ViewModel, vm => vm.FirstName); var eleLastName = new EntryElement("Last name", "Enter last name", this.ViewModel.LastName); eleLastName.BindText(this.ViewModel, vm => vm.LastName); var eleBirthday = new DateElement("Birthday", this.ViewModel.Birthday); eleBirthday.BindDate(this.ViewModel, vm => vm.Birthday); var btnLogin = new UIButton { BackgroundColor = UIColor.White, Frame = new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, 64) }; btnLogin.SetTitle("Create Account", UIControlState.Normal); btnLogin.SetTitleColor(UIColor.Green, UIControlState.Normal); btnLogin.SetTitleColor(UIColor.DarkGray, UIControlState.Disabled); btnLogin.BindEnable(this.ViewModel, vm => vm.ToS); btnLogin.TouchUpInside += (sender, args) => this.CreateAccount(); var eleUsername = new EntryElement("Login", "Enter desired login", this.ViewModel.Username); eleUsername.BindText(this.ViewModel, vm => vm.Username); var elePassword = new EntryElement("Password", "Enter desired password", this.ViewModel.Password, true); elePassword.BindText(this.ViewModel, vm => vm.Password); const string NavTitle = "Bindings"; this.Root = new RootElement(NavTitle) { new Section("Personal") { eleFirstName, eleLastName, eleBirthday }, new Section("Account") { eleUsername, elePassword }, new Section("Read the Terms of Service") { eleAcceptTos }, new Section { new UIViewElement(string.Empty, btnLogin, true) } }; Action <CreateAccountViewController, string> updateTitle = (c, text) => { if (this.NavigationItem == null) { return; } if (!string.IsNullOrEmpty(this.ViewModel.FirstName) && !string.IsNullOrEmpty(this.ViewModel.LastName)) { this.NavigationItem.Title = $"{this.ViewModel.FirstName} {this.ViewModel.LastName}"; } else { this.NavigationItem.Title = NavTitle; } }; BindingCore.CreateBinding(this, this.ViewModel, vm => vm.FirstName, updateTitle); BindingCore.CreateBinding(this, this.ViewModel, vm => vm.LastName, updateTitle); }