コード例 #1
0
ファイル: TabbedPage.Android.cs プロジェクト: sung-su/maui
 partial void OnHandlerChangingPartial(HandlerChangingEventArgs args)
 {
     if (args.OldHandler != null && args.NewHandler == null)
     {
         DisconnectHandler();
     }
 }
コード例 #2
0
        private protected override void OnHandlerChangingCore(HandlerChangingEventArgs args)
        {
            _gestureManager?.Dispose();
            _gestureManager = null;

            base.OnHandlerChangingCore(args);
        }
コード例 #3
0
        partial void OnHandlerChangingPartial(HandlerChangingEventArgs args)
        {
            _connectedToHandler = false;

            if (args.OldHandler != null && args.NewHandler == null)
            {
                OnHandlerDisconnected(args.OldHandler.PlatformView as FrameworkElement);
            }
        }
コード例 #4
0
        partial void OnHandlerChangingPartial(HandlerChangingEventArgs args)
        {
            _callConnectHandler = false;

            if (args.OldHandler != null && args.NewHandler == null)
            {
                OnDisconnectHandler(args.OldHandler.PlatformView as FrameworkElement);
            }
            else if (args.OldHandler == null && args.NewHandler != null)
            {
                _callConnectHandler = true;
            }
        }
コード例 #5
0
        private protected override void OnHandlerChangingCore(HandlerChangingEventArgs args)
        {
            base.OnHandlerChangingCore(args);

            if (args.NewHandler == null)
            {
                PagesChanged -= OnPagesChanged;
                WireUnwireChanges(false);
            }
            else if (args.OldHandler == null)
            {
                PagesChanged += OnPagesChanged;
                WireUnwireChanges(true);
            }

            OnHandlerChangingPartial(args);
            void OnPagesChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
            {
                WireUnwireChanges(false);
                Handler?.UpdateValue(TabbedPage.ItemsSourceProperty.PropertyName);
                WireUnwireChanges(true);
            }

            void WireUnwireChanges(bool wire)
            {
                foreach (var page in Children)
                {
                    if (wire)
                    {
                        page.PropertyChanged += OnPagePropertyChanged;
                    }
                    else
                    {
                        page.PropertyChanged -= OnPagePropertyChanged;
                    }
                }
            }

            void OnPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
            {
                if (e.PropertyName == Page.TitleProperty.PropertyName)
                {
                    Handler?.UpdateValue(TabbedPage.ItemsSourceProperty.PropertyName);
                }
            }
        }
コード例 #6
0
        private protected override void OnHandlerChangingCore(HandlerChangingEventArgs args)
        {
            base.OnHandlerChangingCore(args);

            if (Device.Idiom == TargetIdiom.Phone)
            {
                return;
            }

            if (args.NewHandler == null)
            {
                DeviceDisplay.MainDisplayInfoChanged -= OnMainDisplayInfoChanged;
            }
            else if (args.OldHandler == null)
            {
                DeviceDisplay.MainDisplayInfoChanged += OnMainDisplayInfoChanged;
            }
        }
コード例 #7
0
 partial void OnHandlerChangingPartial(HandlerChangingEventArgs args);