예제 #1
0
 private static void DetachFrameEvents(NavButtonBehavior behavior, Frame frame)
 {
     if (behavior == null || frame == null)
     {
         return;
     }
     if (!behavior._eventRegistrationInfo.TryGetValue(frame, out var eventReg))
     {
         // events already detached
         return;
     }
     behavior._eventRegistrationInfo.Remove(frame);
     frame.UnregisterPropertyChangedCallback(Frame.CanGoBackProperty, eventReg.GoBackReg);
     frame.UnregisterPropertyChangedCallback(Frame.CanGoForwardProperty, eventReg.GoForwardReg);
     frame.Navigated -= behavior.OnNavigated;
     frame.Loaded    -= behavior.FrameOnLoaded;
 }
예제 #2
0
 private static void AttachFrameEvents(NavButtonBehavior behavior, Frame frame)
 {
     if (behavior == null || frame == null)
     {
         return;
     }
     if (behavior._eventRegistrationInfo.TryGetValue(frame, out var eventReg))
     {
         // events already attached
         return;
     }
     eventReg = new FrameEventRegistration();
     behavior._eventRegistrationInfo.Add(frame, eventReg);
     eventReg.GoBackReg    = frame.RegisterPropertyChangedCallback(Frame.CanGoBackProperty, (s, e) => behavior.CalculateThrottled());
     eventReg.GoForwardReg = frame.RegisterPropertyChangedCallback(Frame.CanGoForwardProperty, (s, e) => behavior.CalculateThrottled());
     frame.Navigated      += behavior.OnNavigated;
     frame.Loaded         += behavior.FrameOnLoaded;
 }
예제 #3
0
 private static void DetachFrameEvents(NavButtonBehavior behavior, Frame frame)
 {
     if (behavior == null || frame == null)
     {
         return;
     }
     FrameEventRegistration eventReg;
     if (!behavior._eventRegistrationInfo.TryGetValue(frame, out eventReg))
     {
         // events already detached
         return;
     }
     behavior._eventRegistrationInfo.Remove(frame);
     frame.UnregisterPropertyChangedCallback(Frame.CanGoBackProperty, eventReg.GoBackReg);
     frame.UnregisterPropertyChangedCallback(Frame.CanGoForwardProperty, eventReg.GoForwardReg);
     frame.Navigated -= behavior.OnNavigated;
     frame.Loaded -= behavior.FrameOnLoaded;
 }
예제 #4
0
 private static void AttachFrameEvents(NavButtonBehavior behavior, Frame frame)
 {
     if (behavior == null || frame == null)
     {
         return;
     }
     FrameEventRegistration eventReg;
     if (behavior._eventRegistrationInfo.TryGetValue(frame, out eventReg))
     {
         // events already attached
         return;
     }
     eventReg = new FrameEventRegistration();
     behavior._eventRegistrationInfo.Add(frame, eventReg);
     eventReg.GoBackReg = frame.RegisterPropertyChangedCallback(Frame.CanGoBackProperty, (s, e) => behavior.CalculateThrottled());
     eventReg.GoForwardReg = frame.RegisterPropertyChangedCallback(Frame.CanGoForwardProperty, (s, e) => behavior.CalculateThrottled());
     frame.Navigated += behavior.OnNavigated;
     frame.Loaded += behavior.FrameOnLoaded;
 }