public AddPersonPage() { ViewModel.SaveErrored += HandleError; ViewModel.SaveCompleted += HandleSaveCompleted; var saveButtonToolBar = new ToolbarItem { Text = _saveButtonToolBarItemText, Priority = 0, AutomationId = AutomationIdConstants.AddPersonPage_SaveButton }; saveButtonToolBar.SetBinding(ToolbarItem.CommandProperty, nameof(AddPersonViewModel.SaveButtonCommand)); ToolbarItems.Add(saveButtonToolBar); var cancelButtonToolbarItem = new ToolbarItem { Text = _cancelButtonToolBarItemText, Priority = 1, AutomationId = AutomationIdConstants.AddPersonPage_CancelButton }; cancelButtonToolbarItem.Clicked += HandleCancelButtonToolbarItemClicked; ToolbarItems.Add(cancelButtonToolbarItem); var ageLabel = new Label { Text = "Age" }; var ageEntry = new AddPersonPageEntry { Placeholder = "Age", Keyboard = Keyboard.Numeric, AutomationId = AutomationIdConstants.AddPersonPage_AgeEntry, ReturnType = ReturnType.Go, }; ageEntry.SetBinding(Entry.TextProperty, nameof(AddPersonViewModel.AgeEntryText)); ageEntry.SetBinding(Entry.ReturnCommandProperty, nameof(AddPersonViewModel.SaveButtonCommand)); ageEntry.SetBinding(IsEnabledProperty, new Binding(nameof(AddPersonViewModel.IsBusy), BindingMode.Default, new InverseBooleanConverter(), ViewModel.IsBusy)); var nameLabel = new Label { Text = "Name" }; _nameEntry = new AddPersonPageEntry { Placeholder = "Name", AutomationId = AutomationIdConstants.AddPersonPage_NameEntry, ReturnCommand = new Command(() => ageEntry.Focus()), ReturnType = ReturnType.Next }; _nameEntry.SetBinding(Entry.TextProperty, nameof(AddPersonViewModel.NameEntryText)); _nameEntry.SetBinding(IsEnabledProperty, new Binding(nameof(AddPersonViewModel.IsBusy), BindingMode.Default, new InverseBooleanConverter(), ViewModel.IsBusy)); _activityIndicator = new ActivityIndicator { AutomationId = AutomationIdConstants.AddPersonPage_ActivityIndicator }; _activityIndicator.SetBinding(IsVisibleProperty, nameof(AddPersonViewModel.IsBusy)); _activityIndicator.SetBinding(ActivityIndicator.IsRunningProperty, nameof(AddPersonViewModel.IsBusy)); Padding = new Thickness(20, 20, 20, 0); var stackLayout = new StackLayout { Children = { nameLabel, _nameEntry, ageLabel, ageEntry, _activityIndicator } }; Title = PageTitles.AddPersonPage; Content = new ScrollView { Content = stackLayout }; }
public AddPersonPage() { var saveButtonToolBar = new ToolbarItem { Text = _saveButtonToolBarItemText, Priority = 0, AutomationId = AutomationIdConstants.AddPersonPage_SaveButton }; saveButtonToolBar.SetBinding(ToolbarItem.CommandProperty, nameof(ViewModel.SaveButtonCommand)); ToolbarItems.Add(saveButtonToolBar); _cancelButtonToolbarItem = new ToolbarItem { Text = _cancelButtonToolBarItemText, Priority = 1, AutomationId = AutomationIdConstants.AddPersonPage_CancelButton }; ToolbarItems.Add(_cancelButtonToolbarItem); var ageLabel = new Label { Text = "Age" }; var ageEntry = new AddPersonPageEntry { Placeholder = "Age", Keyboard = Keyboard.Numeric, AutomationId = AutomationIdConstants.AddPersonPage_AgeEntry }; ageEntry.SetBinding(Entry.TextProperty, nameof(ViewModel.AgeEntryText)); ageEntry.SetBinding(CustomReturnEffect.ReturnCommandProperty, nameof(ViewModel.SaveButtonCommand)); ageEntry.SetBinding(IsEnabledProperty, new Binding(nameof(ViewModel.IsActivityIndicatorActive), BindingMode.Default, new InverseBooleanConverter(), ViewModel.IsActivityIndicatorActive)); CustomReturnEffect.SetReturnType(ageEntry, ReturnType.Go); var nameLabel = new Label { Text = "Name" }; _nameEntry = new AddPersonPageEntry { Placeholder = "Name", AutomationId = AutomationIdConstants.AddPersonPage_NameEntry }; _nameEntry.SetBinding(Entry.TextProperty, nameof(ViewModel.NameEntryText)); _nameEntry.SetBinding(IsEnabledProperty, new Binding(nameof(ViewModel.IsActivityIndicatorActive), BindingMode.Default, new InverseBooleanConverter(), ViewModel.IsActivityIndicatorActive)); CustomReturnEffect.SetReturnCommand(_nameEntry, new Command(() => ageEntry.Focus())); CustomReturnEffect.SetReturnType(_nameEntry, ReturnType.Next); _activityIndicator = new ActivityIndicator { AutomationId = AutomationIdConstants.AddPersonPage_ActivityIndicator }; _activityIndicator.SetBinding(IsVisibleProperty, nameof(ViewModel.IsActivityIndicatorActive)); _activityIndicator.SetBinding(ActivityIndicator.IsRunningProperty, nameof(ViewModel.IsActivityIndicatorActive)); Padding = GetPageThickness(); var stackLayout = new StackLayout { Children = { nameLabel, _nameEntry, ageLabel, ageEntry, _activityIndicator } }; Title = PageTitles.AddPersonPage; Content = new ScrollView { Content = stackLayout }; }