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); }
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); }