コード例 #1
0
        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
            };
        }
コード例 #2
0
        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
            };
        }