Exemplo n.º 1
0
        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]);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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;
        }