コード例 #1
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            Suppliers = new List <LinCUser>();
            Suppliers.Add(UserDetails);
        }
コード例 #2
0
 void OnShellNavigating(object sender, ShellNavigatingEventArgs e)
 {
     Debug.WriteLine($"Current: {e.Current?.Location}");
     Debug.WriteLine($"Source: {e.Source}");
     Debug.WriteLine($"Target: {e.Target?.Location}");
     Debug.WriteLine($"CanCancel: {e.CanCancel}");
 }
コード例 #3
0
        protected override void OnNavigating(ShellNavigatingEventArgs args)
        {
            base.OnNavigating(args);

            if (!args.Target.FullLocation.ToString().Contains("ExpandMe"))
            {
                return;
            }

            args.Cancel();

            if (_itemexpanderItems.Items.Count == 0 ||
                _itemexpanderItems.Items[0].Items.Count == 0)
            {
                for (int i = 0; i < 2; i++)
                {
                    _itemexpanderItems.Items.Add(new ShellContent()
                    {
                        Title   = $"Some Item: {i}",
                        Content = new ContentPage()
                    });
                }
            }
            else
            {
                _itemexpanderItems.Items.Clear();
            }
        }
コード例 #4
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            //if(App.MasterData != null && App.MasterData.OrgMaster != null && App.MasterData.OrgMaster.Count > 0)
            if (App.MasterData != null)
            {
                //OrgMasterData = App.MasterData.OrgMaster;
                //DefaultOrganization = OrgMasterData[0];

                CountryMasterData = App.MasterData.CountryMaster;
                DefaultCountry    = CountryMasterData[0];

                StateMasterData = App.MasterData.StateMaster;
                DefaultState    = StateMasterData[0];

                UserTypeMaster = App.MasterData.UserTypeMaster;
                UserTypeMaster[0].IsSelected = true;
                SectionVisibilityAction(UserTypeMaster[0]);

                ProductTypeMaster = App.MasterData.ProductTypeMaster;
            }

            UseLocationSelectionAction(LinCLogicalType.True);
        }
コード例 #5
0
        public async Task NavigatingAndNavigatedFiresForShellModal()
        {
            Shell shell = new Shell();

            shell.Items.Add(CreateShellItem(shellItemRoute: "NewRoute", shellSectionRoute: "Section", shellContentRoute: "Content"));

            ShellNavigatingEventArgs shellNavigatingEventArgs = null;
            ShellNavigatedEventArgs  shellNavigatedEventArgs  = null;

            shell.Navigating += (_, args) =>
            {
                shellNavigatingEventArgs = args;
            };

            shell.Navigated += (_, args) =>
            {
                shellNavigatedEventArgs = args;
            };

            await shell.GoToAsync("ModalTestPage");

            Assert.IsNotNull(shellNavigatingEventArgs, "Shell.Navigating never fired");
            Assert.IsNotNull(shellNavigatedEventArgs, "Shell.Navigated never fired");

            Assert.AreEqual("//NewRoute/Section/Content/", shellNavigatingEventArgs.Current.FullLocation.ToString());
            Assert.AreEqual("//NewRoute/Section/Content/ModalTestPage", shellNavigatedEventArgs.Current.FullLocation.ToString());
        }
コード例 #6
0
        private void AppShell_Navigating(object sender, ShellNavigatingEventArgs e)
        {
            var shell = (AppShell)sender;
            var r     = shell.Items.Select(x => x.CurrentItem.CurrentItem.Route).ToArray();
            var next  = Items.FirstOrDefault(x => "//" + x.CurrentItem.CurrentItem.Route == e.Target.Location.OriginalString);

            var item = _routesSamples[e.Target.Location.OriginalString];
            var t    = Type.GetType($"XamarinSample.{item.Replace('/', '.')}.View");

            object i;

            try
            {
                i = Activator.CreateInstance(t);
            }
            catch (Exception ex)
            {
                var a = 1;
                throw;
            }

            var c = next.Items[0].Items[0];

            c.Content = i;
        }
コード例 #7
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            if (!IsProductAvailable)
            {
                ProductsHeadingText = "No product available. Please add products.";
            }

            if (!IsOrderAvailable)
            {
                OrdersHeadingText = "No order has been placed.";
            }

            if (UserDetails.UserTypeId.Equals(3))
            {
                IsVolunteerUser = true;
            }

            if (UserDetails.UserTypeId.Equals(2))
            {
                IsConsumerUser = true;
            }

            if (UserDetails.UserTypeId.Equals(1))
            {
                IsSupplierUser = true;
            }
        }
コード例 #8
0
 public async void OnNavigating(object sender, ShellNavigatingEventArgs args)
 {
     //if (ArtistDetailsPage.IsPresented)
     //{
     //    args.Cancel();
     //    await Current.DisplayAlert("YOUR APP", "Save your changes before leave", "OK");
     //}
 }
コード例 #9
0
        /*async Task NavigateToSettingAsync()
         * {
         *  Shell.Current.FlyoutIsPresented = false;
         *  await Navigation.PushAsync(new SettingsPage());
         * }
         *
         * void LogoutToLogingPage()
         * {
         *  Shell.Current.FlyoutIsPresented = false;
         *  Application.Current.MainPage = new NavigationPage(new LogingPage());
         *  //await Navigation.PushAsync(new LogingPage());
         * }*/

        private void OnNavigating(object sender, ShellNavigatingEventArgs e)
        {
            // Cancel any back navigation
            if (e.Source == ShellNavigationSource.Pop)
            {
                //e.Cancel();
            }
        }
コード例 #10
0
 private async void Current_Navigating(object sender, ShellNavigatingEventArgs e)
 {
     if (e.CanCancel && !IsBackwardNavAllowed)
     {
         e.Cancel();
         await GoBack(true);
     }
 }
コード例 #11
0
ファイル: AppShell.xaml.cs プロジェクト: davidzhaoblog/Elmah
 void OnNavigating(object sender, ShellNavigatingEventArgs e)
 {
     // Cancel any back navigation
     //if (e.Source == ShellNavigationSource.Pop)
     //{
     //    e.Cancel();
     //}
 }
コード例 #12
0
 private async void Current_Navigating(object sender, ShellNavigatingEventArgs e)
 {
     if (e.CanCancel)
     {
         e.Cancel();
         await GoBack();
     }
 }
コード例 #13
0
        async void OnNavigating(object sender, ShellNavigatingEventArgs e)
        {
            //BackButtonBehavior behavior = new BackButtonBehavior();

            if (e.Source == ShellNavigationSource.Pop)
            {
                //await Shell.Current.GoToAsync($"///route");
            }
        }
コード例 #14
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            //Products = new List<Product>();
            //Products.Add(new Product());
            //Products.Add(new Product());
            //Products.Add(new Product());
        }
コード例 #15
0
        protected override void OnNavigating(ShellNavigatingEventArgs args)
        {
            base.OnNavigating(args);

            if (!IsUserLoggedIn)
            {
                Navigation.PushModalAsync(new DecisionPage());
            }
        }
コード例 #16
0
        private async void AssociatedPage_Navigating(object sender, ShellNavigatingEventArgs e)
        {
            var vm = AssociatedPage.BindingContext;

            if (vm is INavigationAware)
            {
                await((INavigationAware)vm).OnNavigatingToAsync(new Dictionary <string, Object>());
            }
        }
コード例 #17
0
        private void Shell_Navigating(object sender, ShellNavigatingEventArgs e)
        {
            var navArgs = this.OnNavigating(new NavigatingEventArgs(e));

            if (navArgs.Cancel)
            {
                e.Cancel();
            }
        }
コード例 #18
0
 private void OnNavigating(object sender, ShellNavigatingEventArgs e)
 {
     //TODO: this fires when the user is navigating backwards, out of any navigation page.
     // Cancel any back navigation
     //if (e.Source == ShellNavigationSource.Pop)
     //{
     //    e.Cancel();
     //}
 }
コード例 #19
0
        private void AppShell_Navigating(object sender, ShellNavigatingEventArgs e)
        {
            // TODO:Pending
            var uriString = e.Target.Location.OriginalString;

            if (uriString.Contains("?"))
            {
                var pageNameEndIndex = uriString.IndexOf("?", StringComparison.Ordinal);
            }
        }
コード例 #20
0
ファイル: Issue11247.cs プロジェクト: gywerd/CPUI
        protected override void OnNavigating(ShellNavigatingEventArgs args)
        {
            base.OnNavigating(args);

            if (args.CanCancel)
            {
                args.Cancel();
            }

            FlyoutIsPresented = true;
        }
コード例 #21
0
        protected virtual async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            ShellNavigatingEventArgs = args;

            if (this.GetType() != typeof(AppShellViewModel) && this.GetType() != typeof(MainViewModel))
            {
                CurrentViewModelType = this.GetType();
            }

            AppInitialiserService.Initialise(this);
        }
コード例 #22
0
        // não funciona com métodos assíncronos
        void OnShellNavigating(object sender, ShellNavigatingEventArgs e)
        {
            var current = e.Current;

            /*if (current.Location.OriginalString.Contains("MainViewModel"))
             * {
             *  var vm = CurrentPage.BindingContext as MainViewModel;
             *  if (!vm.IsChecked)
             *      e.Cancel();
             * }*/
        }
コード例 #23
0
 protected override void OnNavigating(ShellNavigatingEventArgs args)
 {
     base.OnNavigating(args);
     try
     {
         PageUtilities.OnNavigatedFrom(LastPage, Parameters);
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine($"EXCEPITON: {this?.GetType()?.Name}.OnNavigating() \n{ex.Message}\n{ex}");
     }
 }
コード例 #24
0
 protected override void OnNavigating(ShellNavigatingEventArgs args)
 {
     base.OnNavigating(args);
     if (args.Target?.Location.OriginalString == "//Login")
     {
         LoginAppearing?.Invoke();
     }
     if (args.Current?.Location.OriginalString == "//Login")
     {
         LoginDisappearing?.Invoke();
     }
 }
コード例 #25
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            if (UserDetails.UserTypeId.Equals(1))
            {
                ShouldModify = true;
            }
            else
            {
                ShouldModify = false;
            }
        }
コード例 #26
0
        protected override async Task OnShellNavigatingIn(string sender, ShellNavigatingEventArgs args)
        {
            await base.OnShellNavigatingIn(sender, args);

            if (!IsOrderAvailable)
            {
                OrdersHeadingText = "No order has been placed.";
                OrderSubmitText   = "PLACE ORDER";
            }

            if (UserDetails.UserTypeId.Equals("2"))
            {
                IsConsumerUser = true;
            }
        }
コード例 #27
0
        private void OnNavigating(object sender, ShellNavigatingEventArgs e)
        {
            AddChipTab.IsEnabled = Preferences.Get("Role", "") == "ROLE_ADMIN";
            if (Shell.Current == null)
            {
                return;
            }

            if ((e.Source == ShellNavigationSource.ShellSectionChanged || e.Source == ShellNavigationSource.Unknown) &&
                e.Target.Location.ToString() != Routes.Attendance)
            {
                NFCController.StartListening(OnMessageReceived, true);
            }

            MapRouteToPage(e.Target.Location)?.OnNavigated();
        }
コード例 #28
0
        protected override void OnNavigating(ShellNavigatingEventArgs e)
        {
            base.OnNavigating(e);

            if (e.Source != ShellNavigationSource.ShellSectionChanged)
            {
                return;
            }

            foreach (var item in tabs.Items)
            {
                if (item?.Stack?.Count > 1)
                {
                    item.Stack[1].Navigation.PopToRootAsync();
                }
            }
        }
コード例 #29
0
        private async void Shell_Navigating(object sender, ShellNavigatingEventArgs e)
        {
            string customGoBackRoute = (this.currentNavigationArgs != null && !string.IsNullOrWhiteSpace(this.currentNavigationArgs.ReturnRoute)) ? this.currentNavigationArgs.ReturnRoute : DefaultGoBackRoute;
            string path = e.Target.Location.ToString();

            if (path == DefaultGoBackRoute &&              // user wants to go back
                customGoBackRoute != DefaultGoBackRoute && // we have a custom back route to use instead of the default one
                e.CanCancel &&                             // Can we cancel navigation?
                !this.isManuallyNavigatingBack)            // Avoid recursion
            {
                this.isManuallyNavigatingBack = true;
                e.Cancel();
                await this.GoBackAsync();

                this.isManuallyNavigatingBack = false;
            }
        }
コード例 #30
0
        public void OnShellNavigating(object sender, ShellNavigatingEventArgs e)
        {
            var routeOut = e?.Current?.Location?.OriginalString?.Split('/')?.LastOrDefault()?.Replace("/", "");

            PreviousRoute = e?.Current?.Location?.OriginalString;

            MessagingCenter.Send <string, ShellNavigatingEventArgs>(nameof(AppShell), routeOut + $"{nameof(OnShellNavigating)}Out", e);

            string routeIn;

            if (e == null && e.Target == null)
            {
                return;
            }

            routeIn = e?.Target?.Location?.OriginalString?.Split('/')?.Last()?.Replace("/", "");
            MessagingCenter.Send <string, ShellNavigatingEventArgs>(nameof(AppShell), routeIn + $"{nameof(OnShellNavigating)}In", e);
        }