コード例 #1
0
        public PivotAdapter(Android.Support.V4.App.FragmentManager fragmentManager, Pivot pivot)
            : base(fragmentManager)
        {
            if (pivot == null)
            {
                throw new ArgumentNullException(nameof(pivot));
            }

            _pivot     = pivot;
            _fragments = new List <PivotItemFragment>();
        }
コード例 #2
0
ファイル: Pivot.cs プロジェクト: madenwala/Templates
        private async void Pivot_PivotItemLoading(Windows.UI.Xaml.Controls.Pivot sender, Windows.UI.Xaml.Controls.PivotItemEventArgs args)
        {
            if (this.DataContext is CollectionViewModelBase parentVM)
            {
                if (args.Item.DataContext is ViewModelBase vm)
                {
                    try
                    {
                        await parentVM.SetCurrentAsync(vm);
                    }
                    catch (Exception ex)
                    {
                        PlatformBase.CurrentCore.Logger.LogError(ex, "Error while loading child ViewModel of type {1} in CollectionViewModel type {0}", parentVM.GetType().Name, vm.GetType().Name);
                    }

                    if (this.AutoLoadNextPivot)
                    {
                        ViewModelBase nextVM = null;
                        try
                        {
                            var currentIndex = sender.Items.IndexOf(args.Item);
                            var nextIndex    = currentIndex + 1;
                            nextIndex = nextIndex < sender.Items.Count ? nextIndex : 0;
                            var nextPi = sender.Items[nextIndex] as PivotItem;
                            nextVM = nextPi.DataContext as ViewModelBase;

                            // Load the next VM
                            await parentVM.LoadViewModelAsync(nextVM);
                        }
                        catch (Exception ex)
                        {
                            PlatformBase.CurrentCore.Logger.LogError(ex, "Error while auto loading next PivotItem ViewModel of type {1} in CollectionViewModel type {0}", parentVM.GetType().Name, nextVM?.GetType().Name);
                        }
                    }
                }
            }
        }