public void HandleNavigated(ShellNavigatedEventArgs args) { if (_accumulateNavigatedEvents) { if (_accumulatedEvent == null) { _accumulatedEvent = args; } } else { _accumulatedEvent = null; BaseShellItem baseShellItem = _shell.CurrentItem?.CurrentItem?.CurrentItem; if (baseShellItem != null) { baseShellItem.OnAppearing(() => { FireNavigatedEvents(args, _shell); }); } else { FireNavigatedEvents(args, _shell); } void FireNavigatedEvents(ShellNavigatedEventArgs a, Shell shell) { Navigated?.Invoke(this, args); // reset active page route tree Routing.ClearImplicitPageRoutes(); Routing.RegisterImplicitPageRoutes(_shell); } } }
public BaseShellItemHandler(NativeComponentRenderer renderer, XF.BaseShellItem baseShellItemControl) : base(renderer, baseShellItemControl) { BaseShellItemControl = baseShellItemControl ?? throw new ArgumentNullException(nameof(baseShellItemControl)); BaseShellItemControl.Appearing += (s, e) => { if (AppearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(AppearingEventHandlerId, null, e)); } }; BaseShellItemControl.Disappearing += (s, e) => { if (DisappearingEventHandlerId != default) { renderer.Dispatcher.InvokeAsync(() => renderer.DispatchEventAsync(DisappearingEventHandlerId, null, e)); } }; }
public BaseShellItemHandler(NativeComponentRenderer renderer, XF.BaseShellItem baseShellItemControl) : base(renderer, baseShellItemControl) { BaseShellItemControl = baseShellItemControl ?? throw new ArgumentNullException(nameof(baseShellItemControl)); Initialize(renderer); }
protected override bool IsShellElementVisible(BaseShellItem item) { IShellContentController controller = (IShellContentController)item; return(controller.Page == null || controller.Page.IsVisible); }