public void GetValuesConvertsValuesToStringWhenGivenUriQuery() { var parameters = new NavigationParameters(_uriWithArray); var result = parameters.GetValues <string>("color").ToArray(); Assert.Equal(3, result.Count()); Assert.IsType <string>(result[0]); Assert.IsType <string>(result[1]); Assert.IsType <string>(result[2]); }
public void OnNavigatingTo(NavigationParameters parameters) { System.Diagnostics.Debug.WriteLine($"{Title} OnNavigatingTo"); var tabs = parameters.GetValues <string>("addTab"); foreach (var name in tabs) { AddChild(name, new NavigationParameters { { "message", "Hello from DynamicTabbedPage" } }); } }
public void GetValuesReturnsArrayWhenNotUsingQuery() { var parameters = new NavigationParameters(); parameters.Add("id", new Person()); parameters.Add("id", new Person()); parameters.Add("id", null); var result = parameters.GetValues <Person>("id").ToArray(); Assert.AreEqual(3, result.Count()); Assert.IsInstanceOfType(result[0], typeof(Person)); Assert.IsInstanceOfType(result[1], typeof(Person)); Assert.IsNull(result[2]); }
public void GetValuesUseParentClassAsTypeParameter() { var parameters = new NavigationParameters(); parameters.Add("id", new Child()); parameters.Add("id", new Child()); parameters.Add("id", new Person()); var result = parameters.GetValues <Person>("id").ToArray(); Assert.AreEqual(3, result.Count()); Assert.IsNotNull(result[0]); Assert.IsNotNull(result[1]); Assert.IsNotNull(result[2]); }
public override void OnNavigatedTo(NavigationParameters parameters) { IsBusy = true; switch (parameters.GetNavigationMode()) { case NavigationMode.Back: if (parameters.ContainsKey("todoItem")) { TodoItems.Add(parameters.GetValue <TodoItem>("todoItem")); } break; case NavigationMode.New: TodoItems.AddRange(parameters.GetValues <string>("todo") .Select(n => new TodoItem { Name = n })); break; } IsBusy = false; }
public override void OnNavigatedTo(NavigationParameters parameters) { IsBusy = true; switch (parameters.GetNavigationMode()) { case NavigationMode.Back: if (parameters.ContainsKey("toBuyItem")) { ToBuyItems.Add(parameters.GetValue <ToBuyItem>("toBuyItem")); } else if (parameters.ContainsKey("addList")) { var items = parameters.GetValue <AddList>("addList"); if (items.List == null) { IsBusy = false; return; } string[] separators = { ",", "\n" }; var itemsArray = items.List.Split(separators, StringSplitOptions.RemoveEmptyEntries); ToBuyItems.AddRange(itemsArray .Select(n => new ToBuyItem { Name = n }).Distinct()); } break; case NavigationMode.New: ToBuyItems.AddRange(parameters.GetValues <string>("tobuy") .Select(n => new ToBuyItem { Name = n })); break; } IsBusy = false; }
public async void OnNavigatingTo(NavigationParameters parameters) { var tabs = parameters.GetValues <string>(AppConstants.DynamicTabKey); foreach (var tabSegment in tabs) { Page page = null; var uri = UriParsingHelper.Parse(tabSegment); foreach (var segment in UriParsingHelper.GetUriSegments(uri)) { if (page != null && !(page is NavigationPage)) { continue; } var segmentPage = CreatePage(UriParsingHelper.GetSegmentName(segment)); segmentPage.Behaviors.Add(new IsActiveAwareBehavior()); PageUtilities.OnNavigatingTo(segmentPage, UriParsingHelper.GetSegmentParameters(segment, parameters)); switch (page) { case null: page = segmentPage; break; case NavigationPage navPage: await navPage.PushAsync(segmentPage); break; } } Children.Add(page); } }
public override void OnNavigatedTo(NavigationParameters parameters) #endif { IsBusy = true; switch (parameters.GetNavigationMode()) { case NavigationMode.Back: #if (UseAzureMobileClient) #if (UseMvvmHelpers) TodoItems.ReplaceRange(await _dataContext.TodoItems.ReadAllItemsAsync()); #else Todoitems.Clear(); foreach (var item in await _dataContext.TodoItems.ReadAllItemsAsync()) { TodoItems.Add(item); } #endif #elseif (UseRealm) // Do anything you want to do only when Navigating Back to the View #else if (parameters.ContainsKey("todoItem")) { TodoItems.Add(parameters.GetValue <TodoItem>("todoItem")); } #endif break; case NavigationMode.New: #if (UseAzureMobileClient) #if (UsesAuthentication) await _cloudService.LoginAsync(); #endif #if (UseMvvmHelpers) TodoItems.AddRange(await _dataContext.TodoItems.ReadAllItemsAsync()); #else foreach (var item in await _dataContext.TodoItems.ReadAllItemsAsync()) { TodoItems.Add(item); } #endif #elseif (UseRealm) TodoItems = _realm.All <TodoItem>(); #else #if (UseMvvmHelpers) TodoItems.AddRange(parameters.GetValues <string>("todo") .Select(n => new TodoItem { Name = n })); #else foreach (var item in parameters.GetValues <string>("todo")) { TodoItems.Add(new TodoItem() { Name = item }); } #endif #endif break; } IsBusy = false; }