private void ClosePickerPage() { // Unhook from events if (null != _frame) { _frame.Navigated -= OnFrameNavigated; _frame.NavigationStopped -= OnFrameNavigationStoppedOrFailed; _frame.NavigationFailed -= OnFrameNavigationStoppedOrFailed; // Restore host page transitions for the completed "popup" navigation UIElement frameContentWhenOpenedAsUIElement = _frameContentWhenOpened as UIElement; if (null != frameContentWhenOpenedAsUIElement) { TransitionService.SetNavigationInTransition(frameContentWhenOpenedAsUIElement, _savedNavigationInTransition); _savedNavigationInTransition = null; TransitionService.SetNavigationOutTransition(frameContentWhenOpenedAsUIElement, _savedNavigationOutTransition); _savedNavigationOutTransition = null; } _frame = null; _frameContentWhenOpened = null; } if (null != _expanderSelectorPage) { //this.SelectItem = _expanderSelectorPage.SelectItem == null ? _expanderSelectorPage.SelectItem : null; ValueSelected(this, new ExpanderSelectedEventArgs(_expanderSellectorDataContext.SelectedItem)); _expanderSelectorPage = null; } }
private void OnFrameNavigated(object sender, NavigationEventArgs e) { if (e.Content == _frameContentWhenOpened) { // Navigation to original page; close the picker page ClosePickerPage(); } else if (null == _expanderSelectorPage) { // Navigation to a new page; capture it and push the value in var selectorPage = e.Content as ExpanderSelectorPage; if (null != selectorPage) { _expanderSelectorPage = selectorPage; _expanderSelectorPage.DataContext = _expanderSellectorDataContext; _expanderSelectorPage.InitTreeView(); //_expanderSelectorPage.Value = Value.GetValueOrDefault(DateTime.Now); //pickerPage.SetFlowDirection(this.FlowDirection); } } }