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; }
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; }
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; }
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; }