Exemplo n.º 1
0
        static void ConfigureGoReturnTypeEntryCommandBinding(bool shouldUseEffects, Entry goReturnTypeEntry, MultipleEntryViewModel multipleEntryViewModel)
        {
            switch (shouldUseEffects)
            {
            case true:
                goReturnTypeEntry.SetBinding(CustomReturnEffect.ReturnCommandProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommand));
                break;

            case false:
                goReturnTypeEntry.SetBinding(CustomReturnEntry.ReturnCommandProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommand));
                break;
            }

            Device.BeginInvokeOnMainThread(goReturnTypeEntry.Unfocus);
        }
Exemplo n.º 2
0
        public static View CreateMultipleEntryPageLayout(bool shouldUseEffects, MultipleEntryViewModel multipleEntryViewModel)
        {
            var defaultReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                     ReturnType.Default,
                                                     "Return Type: Default",
                                                     AutomationIdConstants.DefaultReturnTypeEntryAutomationId,
                                                     nameof(multipleEntryViewModel.DefaultReturnTypeEntryText));

            var nextReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                  ReturnType.Next,
                                                  "Return Type: Next",
                                                  AutomationIdConstants.NextReturnTypeEntryAutomationId,
                                                  nameof(multipleEntryViewModel.NextReturnTypeEntryText));

            var doneReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                  ReturnType.Done,
                                                  "Return Type: Done",
                                                  AutomationIdConstants.DoneReturnTypeEntryAutomationId,
                                                  nameof(multipleEntryViewModel.DoneReturnTypeEntryText));

            var sendReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                  ReturnType.Send,
                                                  "Return Type: Send",
                                                  AutomationIdConstants.SendReturnTypeEntryAutomationId,
                                                  nameof(multipleEntryViewModel.SendReturnTypeEntryText));

            var searchReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                    ReturnType.Search,
                                                    "Return Type: Search",
                                                    AutomationIdConstants.SearchReturnTypeEntryAutomationId,
                                                    nameof(multipleEntryViewModel.SearchReturnTypeEntryText));

            var goReturnTypeEntry = CreateEntry(shouldUseEffects,
                                                ReturnType.Go,
                                                "Return Type: Go",
                                                AutomationIdConstants.GoReturnTypeEntryAutomationId,
                                                nameof(multipleEntryViewModel.GoReturnTypeEntryText));

            ConfigureEntryReturnCommand(shouldUseEffects, defaultReturnTypeEntry, () => nextReturnTypeEntry.Focus());
            ConfigureEntryReturnCommand(shouldUseEffects, nextReturnTypeEntry, () => doneReturnTypeEntry.Focus());
            ConfigureEntryReturnCommand(shouldUseEffects, doneReturnTypeEntry, () => sendReturnTypeEntry.Focus());
            ConfigureEntryReturnCommand(shouldUseEffects, sendReturnTypeEntry, () => searchReturnTypeEntry.Focus());
            ConfigureEntryReturnCommand(shouldUseEffects, searchReturnTypeEntry, () => goReturnTypeEntry.Focus());
            ConfigureGoReturnTypeEntryCommandBinding(shouldUseEffects, goReturnTypeEntry, multipleEntryViewModel);

            var goButton = new Button
            {
                Text         = "Go",
                AutomationId = AutomationIdConstants.GoButtonAutomationId
            };

            goButton.SetBinding(Button.CommandProperty, nameof(multipleEntryViewModel.GoButtonCommand));

            var resultLabel = new Label
            {
                AutomationId = AutomationIdConstants.ResultsLabelAutomationId
            };

            resultLabel.SetBinding(Label.TextProperty, nameof(multipleEntryViewModel.ResultLabelText));


            var mainStackLayout = new StackLayout
            {
                Children =
                {
                    defaultReturnTypeEntry,
                    nextReturnTypeEntry,
                    doneReturnTypeEntry,
                    sendReturnTypeEntry,
                    searchReturnTypeEntry,
                    goReturnTypeEntry,
                    goButton,
                    resultLabel
                }
            };

            return(new ScrollView
            {
                Content = mainStackLayout
            });
        }
        static void ConfigureGoReturnTypeEntryCommandBinding(Entry goReturnTypeEntry, MultipleEntryViewModel multipleEntryViewModel)
        {
            switch (goReturnTypeEntry)
            {
            case CustomReturnEntry customReturnEntry:
                customReturnEntry.SetBinding(CustomReturnEntry.ReturnCommandProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommand));
                customReturnEntry.SetBinding(CustomReturnEntry.ReturnCommandParameterProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommandParameter));
                break;

            case Entry baseEntry:
                baseEntry.SetBinding(CustomReturnEffect.ReturnCommandProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommand));
                baseEntry.SetBinding(CustomReturnEffect.ReturnCommandParameterProperty, nameof(multipleEntryViewModel.GoReturnTypeEntryReturnCommandParameter));
                break;

            default:
                throw new NotSupportedException("Invalid Type");
            }

            Device.BeginInvokeOnMainThread(goReturnTypeEntry.Unfocus);
        }