public GridCellHandler(NativeComponentRenderer renderer, GridCellPlaceholderElement gridCellPlaceholderElementControl) { Renderer = renderer ?? throw new ArgumentNullException(nameof(renderer)); GridCellPlaceholderElementControl = gridCellPlaceholderElementControl ?? throw new ArgumentNullException(nameof(gridCellPlaceholderElementControl)); _parentChildManager = new ParentChildManager <XF.Grid, XF.View>(AddChildViewToParentGrid); }
public ShellFlyoutHeaderHandler(NativeComponentRenderer renderer, DummyElement shellFlyoutHeaderDummyControl) { Renderer = renderer ?? throw new ArgumentNullException(nameof(renderer)); ShellFlyoutHeaderDummyControl = shellFlyoutHeaderDummyControl ?? throw new ArgumentNullException(nameof(shellFlyoutHeaderDummyControl)); _parentChildManager = new ParentChildManager <XF.Shell, XF.View>(SetShellFlyoutHeader); }
public ShellHandler(NativeComponentRenderer renderer, XF.Shell shellControl) : base(renderer, shellControl) { ShellControl = shellControl ?? throw new ArgumentNullException(nameof(shellControl)); // Add one item for Shell to load correctly. It will later be removed when the first real // item is added by the app. ShellControl.Items.Add(_dummyShellContent); // Add a dummy FlyoutHeader because it cannot be set dynamically later. When app code sets // its own FlyoutHeader, it will be set as the Content of this ContentView. // See https://github.com/xamarin/Xamarin.Forms/issues/6161 ([Bug] Changing the Shell Flyout Header after it's already rendered doesn't work) _flyoutHeaderContentView.IsVisible = false; ShellControl.FlyoutHeader = _flyoutHeaderContentView; ShellControl.Navigated += (s, e) => { if (NavigatedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(NavigatedEventHandlerId, null, e)); } }; ShellControl.Navigating += (s, e) => { if (NavigatingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(NavigatingEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { RegisterEvent( eventName: "onappearing", setId: id => AppearingEventHandlerId = id, clearId: () => AppearingEventHandlerId = 0); BaseShellItemControl.Appearing += (s, e) => { if (AppearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(AppearingEventHandlerId, null, e)); } }; RegisterEvent( eventName: "ondisappearing", setId: id => DisappearingEventHandlerId = id, clearId: () => DisappearingEventHandlerId = 0); BaseShellItemControl.Disappearing += (s, e) => { if (DisappearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(DisappearingEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { // Add one item for Shell to load correctly. It will later be removed when the first real // item is added by the app. ShellControl.Items.Add(_dummyShellContent); // Add a dummy FlyoutHeader because it cannot be set dynamically later. When app code sets // its own FlyoutHeader, it will be set as the Content of this ContentView. // See https://github.com/xamarin/Xamarin.Forms/issues/6161 ([Bug] Changing the Shell Flyout Header after it's already rendered doesn't work) _flyoutHeaderContentView.IsVisible = false; ShellControl.FlyoutHeader = _flyoutHeaderContentView; RegisterEvent( eventName: "onnavigated", setId: id => NavigatedEventHandlerId = id, clearId: () => NavigatedEventHandlerId = 0); ShellControl.Navigated += (s, e) => { if (NavigatedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(NavigatedEventHandlerId, null, e)); } }; RegisterEvent( eventName: "onnavigating", setId: id => NavigatingEventHandlerId = id, clearId: () => NavigatingEventHandlerId = 0); ShellControl.Navigating += (s, e) => { if (NavigatingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(NavigatingEventHandlerId, null, e)); } }; }
public VisualElementHandler(NativeComponentRenderer renderer, XF.VisualElement visualElementControl) : base(renderer, visualElementControl) { VisualElementControl = visualElementControl ?? throw new ArgumentNullException(nameof(visualElementControl)); VisualElementControl.Focused += (s, e) => { if (FocusedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(FocusedEventHandlerId, null, e)); } }; VisualElementControl.SizeChanged += (s, e) => { if (SizeChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(SizeChangedEventHandlerId, null, e)); } }; VisualElementControl.Unfocused += (s, e) => { if (UnfocusedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(UnfocusedEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { ConfigureEvent( eventName: "onappearing", setId: id => AppearingEventHandlerId = id, clearId: id => { if (AppearingEventHandlerId == id) { AppearingEventHandlerId = 0; } }); PageControl.Appearing += (s, e) => { if (AppearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(AppearingEventHandlerId, null, e)); } }; ConfigureEvent( eventName: "ondisappearing", setId: id => DisappearingEventHandlerId = id, clearId: id => { if (DisappearingEventHandlerId == id) { DisappearingEventHandlerId = 0; } }); PageControl.Disappearing += (s, e) => { if (DisappearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(DisappearingEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { RegisterEvent( eventName: "oncompleted", setId: id => CompletedEventHandlerId = id, clearId: id => { if (CompletedEventHandlerId == id) { CompletedEventHandlerId = 0; } }); EntryControl.Completed += (s, e) => { if (CompletedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(CompletedEventHandlerId, null, e)); } }; RegisterEvent( eventName: "ontextchanged", setId: id => TextChangedEventHandlerId = id, clearId: id => { if (TextChangedEventHandlerId == id) { TextChangedEventHandlerId = 0; } }); EntryControl.TextChanged += (s, e) => { if (TextChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(TextChangedEventHandlerId, null, new ChangeEventArgs { Value = EntryControl.Text })); } }; }
public FlyoutFlyoutPageHandler(NativeComponentRenderer renderer, MC.ContentPage flyoutPageControl) : base(renderer, flyoutPageControl) { FlyoutPageControl = flyoutPageControl ?? throw new ArgumentNullException(nameof(flyoutPageControl)); // The Flyout page must have its Title set: https://github.com/xamarin/Xamarin.Forms/blob/5.0.0/Xamarin.Forms.Core/FlyoutPage.cs#L74 ContentPageControl.Title = "Title"; }
public MasterPageHandler(NativeComponentRenderer renderer, XF.ContentPage masterDetailPageControl) : base(renderer, masterDetailPageControl) { MasterDetailPageControl = masterDetailPageControl ?? throw new ArgumentNullException(nameof(masterDetailPageControl)); // The Master page must have its Title set: // https://github.com/xamarin/Xamarin.Forms/blob/ff63ef551d9b2b5736092eb48aaf954f54d63417/Xamarin.Forms.Core/MasterDetailPage.cs#L72 ContentPageControl.Title = "Title"; }
public ModalContainerHandler(NativeComponentRenderer renderer, DummyElement modalContainerDummyControl) { Renderer = renderer ?? throw new ArgumentNullException(nameof(renderer)); ModalContainerPlaceholderElementControl = modalContainerDummyControl ?? throw new ArgumentNullException(nameof(modalContainerDummyControl)); _parentChildManager = new ParentChildManager <XF.NavigableElement, XF.Page>(ShowDialogIfPossible); _parentChildManager.ChildChanged += OnParentChildManagerChildChanged; }
#pragma warning disable IDE0060 // Remove unused parameter #pragma warning disable CA1801 // Parameter is never used partial void Initialize(NativeComponentRenderer renderer) #pragma warning restore CA1801 // Parameter is never used #pragma warning restore IDE0060 // Remove unused parameter { // The Master page must have its Title set: // https://github.com/xamarin/Xamarin.Forms/blob/ff63ef551d9b2b5736092eb48aaf954f54d63417/Xamarin.Forms.Core/MasterDetailPage.cs#L72 ContentPageControl.Title = "Title"; }
public void TryParseTest(string s, Type type, object expectedResult, bool expectedSuccess) { var success = NativeComponentRenderer.TryParse(type, s, out var result); Assert.Multiple(() => { Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedSuccess, success); }); }
public void SetIntToString() { var component = new TestComponent(); var value = "NotAnInt"; var parameters = new Dictionary <string, object> { { "IntParameter", value } }; Assert.Throws <ArgumentException>(() => NativeComponentRenderer.SetParameterArguments(component, parameters)); }
public ButtonHandler(NativeComponentRenderer renderer, XF.Button buttonControl) : base(renderer, buttonControl) { ButtonControl = buttonControl ?? throw new ArgumentNullException(nameof(buttonControl)); ButtonControl.Clicked += (s, e) => { if (ClickEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ClickEventHandlerId, null, e)); } }; }
public void SetParameterTest(Dictionary <string, string> parameters, object expected) { var component = new TestComponent(); NativeComponentRenderer.SetNavigationParameters(component, parameters); var prop = component.GetType().GetProperty(parameters.FirstOrDefault().Key); var value = prop.GetValue(component); Assert.AreEqual(expected, value); }
public BlazorButton(NativeComponentRenderer renderer) { Click += (s, e) => { if (ClickEventHandlerId != default) { renderer.DispatchEventAsync(ClickEventHandlerId, null, new EventArgs()); } }; Renderer = renderer; }
public MenuItemHandler(NativeComponentRenderer renderer, XF.MenuItem menuItemControl) : base(renderer, menuItemControl) { MenuItemControl = menuItemControl ?? throw new ArgumentNullException(nameof(menuItemControl)); MenuItemControl.Clicked += (s, e) => { if (ClickEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ClickEventHandlerId, null, e)); } }; }
public void SetIntToString() { var component = new TestComponent(); var expected = "NotAnInt"; var parameters = new Dictionary <string, string> { { "IntParameter", expected } }; Assert.Throws <InvalidOperationException>(() => NativeComponentRenderer.SetNavigationParameters(component, parameters)); }
public void SetNonParameter() { var component = new TestComponent(); var value = "NonParameter"; var parameters = new Dictionary <string, object> { { "NonParameter", value } }; Assert.Throws <InvalidOperationException>(() => NativeComponentRenderer.SetParameterArguments(component, parameters)); }
private void InitializeEventHandlers(NativeComponentRenderer renderer) { ConfigureEvent( eventName: "onselectionchanged", setId: id => SelectionChangedEventHandlerId = id, clearId: id => { if (SelectionChangedEventHandlerId == id) { SelectionChangedEventHandlerId = 0; } }); ConfigureEvent( eventName: "onselecteditemchanged", setId: id => SelectedItemChangedEventHandlerId = id, clearId: id => { if (SelectedItemChangedEventHandlerId == id) { SelectedItemChangedEventHandlerId = 0; } }); ConfigureEvent( eventName: "onselecteditemschanged", setId: id => SelectedItemsChangedEventHandlerId = id, clearId: id => { if (SelectedItemsChangedEventHandlerId == id) { SelectedItemsChangedEventHandlerId = 0; } }); SelectableItemsViewControl.SelectionChanged += (s, e) => { if (SelectionChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(SelectionChangedEventHandlerId, null, e)); } if (SelectedItemChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(SelectedItemChangedEventHandlerId, null, new ChangeEventArgs { Value = SelectableItemsViewControl.SelectedItem })); } if (SelectedItemsChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(SelectedItemsChangedEventHandlerId, null, new ChangeEventArgs { Value = SelectableItemsViewControl.SelectedItems })); } }; }
public void SetParameterTest(Dictionary <string, object> parameters) { var component = new TestComponent(); NativeComponentRenderer.SetParameterArguments(component, parameters); var parameterKeyValue = parameters.FirstOrDefault(); var prop = component.GetType().GetProperty(parameterKeyValue.Key); var actualValue = prop.GetValue(component); Assert.AreEqual(parameterKeyValue.Value, actualValue); }
partial void Initialize(NativeComponentRenderer renderer) { ConfigureEvent( eventName: "ondragcompleted", setId: id => DragCompletedEventHandlerId = id, clearId: id => { if (DragCompletedEventHandlerId == id) { DragCompletedEventHandlerId = 0; } }); SliderControl.DragCompleted += (s, e) => { if (DragCompletedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(DragCompletedEventHandlerId, null, e)); } }; ConfigureEvent( eventName: "ondragstarted", setId: id => DragStartedEventHandlerId = id, clearId: id => { if (DragStartedEventHandlerId == id) { DragStartedEventHandlerId = 0; } }); SliderControl.DragStarted += (s, e) => { if (DragStartedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(DragStartedEventHandlerId, null, e)); } }; ConfigureEvent( eventName: "onvaluechanged", setId: id => ValueChangedEventHandlerId = id, clearId: id => { if (ValueChangedEventHandlerId == id) { ValueChangedEventHandlerId = 0; } }); SliderControl.ValueChanged += (s, e) => { if (ValueChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ValueChangedEventHandlerId, null, new ChangeEventArgs { Value = SliderControl.Value })); } }; }
public BlazorTextBox(NativeComponentRenderer renderer) { TextChanged += (s, e) => { if (TextChangedEventHandlerId != default) { renderer.DispatchEventAsync(TextChangedEventHandlerId, null, new ChangeEventArgs { Value = Text }); } }; Renderer = renderer; }
public SwitchHandler(NativeComponentRenderer renderer, XF.Switch switchControl) : base(renderer, switchControl) { SwitchControl = switchControl ?? throw new System.ArgumentNullException(nameof(switchControl)); SwitchControl.Toggled += (s, e) => { if (IsToggledChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(IsToggledChangedEventHandlerId, null, new ChangeEventArgs { Value = SwitchControl.IsToggled })); } }; }
public StepperHandler(NativeComponentRenderer renderer, XF.Stepper stepperControl) : base(renderer, stepperControl) { StepperControl = stepperControl ?? throw new ArgumentNullException(nameof(stepperControl)); StepperControl.ValueChanged += (s, e) => { if (ValueChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ValueChangedEventHandlerId, null, new ChangeEventArgs { Value = StepperControl.Value })); } }; }
partial void Initialize(NativeComponentRenderer renderer) { //RegisterEvent( // eventName: "oncurrentpagechanged", // setId: id => CurrentPageChangedId = id, // clearId: id => { if (CurrentPageChangedId == id) { CurrentPageChangedId = 0; } }); //BottomTabbedPageControl.CurrentPageChanged += (s, e) => //{ // if (CurrentPageChangedId != default) // { // renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(CurrentPageChangedId, null, e)); // } //}; }
partial void Initialize(NativeComponentRenderer renderer) { ConfigureEvent( eventName: "onclick", setId: id => ClickEventHandlerId = id, clearId: id => { if (ClickEventHandlerId == id) { ClickEventHandlerId = 0; } }); ButtonControl.Clicked += (s, e) => { if (ClickEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ClickEventHandlerId, null, e)); } }; ConfigureEvent( eventName: "onpress", setId: id => PressEventHandlerId = id, clearId: id => { if (PressEventHandlerId == id) { PressEventHandlerId = 0; } }); ButtonControl.Pressed += (s, e) => { if (PressEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(PressEventHandlerId, null, e)); } }; ConfigureEvent( eventName: "onrelease", setId: id => ReleaseEventHandlerId = id, clearId: id => { if (ReleaseEventHandlerId == id) { ReleaseEventHandlerId = 0; } }); ButtonControl.Released += (s, e) => { if (ReleaseEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ReleaseEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { RegisterEvent( eventName: "onclick", setId: id => ClickEventHandlerId = id, clearId: () => ClickEventHandlerId = 0); ButtonControl.Clicked += (s, e) => { if (ClickEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(ClickEventHandlerId, null, e)); } }; }
partial void Initialize(NativeComponentRenderer renderer) { RegisterEvent( eventName: "onischeckedchanged", setId: id => IsCheckedChangedEventHandlerId = id, clearId: id => { if (IsCheckedChangedEventHandlerId == id) { IsCheckedChangedEventHandlerId = 0; } }); CheckBoxControl.CheckedChanged += (s, e) => { if (IsCheckedChangedEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(IsCheckedChangedEventHandlerId, null, new ChangeEventArgs { Value = e.Value })); } }; }