Task IShellItemController.GoToPart(List <string> parts, Dictionary <string, string> queryData) { var shellSectionRoute = parts[0]; var items = Items; for (int i = 0; i < items.Count; i++) { var shellSection = items[i]; if (Routing.CompareRoutes(shellSection.Route, shellSectionRoute, out var isImplicit)) { Shell.ApplyQueryAttributes(shellSection, queryData, parts.Count == 1); if (CurrentItem != shellSection) { SetValueFromRenderer(CurrentItemProperty, shellSection); } if (!isImplicit) { parts.RemoveAt(0); } if (parts.Count > 0) { return(((IShellSectionController)shellSection).GoToPart(parts, queryData)); } break; } } return(Task.FromResult(true)); }
internal Task GoToPart(NavigationRequest request, Dictionary<string, string> queryData) { var shellSection = request.Request.Section; if (shellSection == null) shellSection = ShellItemController.GetItems()[0]; Shell.ApplyQueryAttributes(shellSection, queryData, request.Request.Content == null); if (CurrentItem != shellSection) SetValueFromRenderer(CurrentItemProperty, shellSection); return shellSection.GoToPart(request, queryData); }
internal Task GoToPart(NavigationRequest request, Dictionary <string, string> queryData) { var shellSection = request.Request.Section; if (shellSection == null) { return(Task.FromResult(true)); } Shell.ApplyQueryAttributes(shellSection, queryData, request.Request.Content == null); if (CurrentItem != shellSection) { SetValueFromRenderer(CurrentItemProperty, shellSection); } return(shellSection.GoToPart(request, queryData)); }