private void SetActiveItem(StationViewModel value) { if (value == activeItem) return; if (value != null && !value.CanOpenDetails()) return; bool? doShow = null; if (activeItem == null && value != null) doShow = true; else if (activeItem != null && value == null) doShow = false; #region ActiveItem in header animation /* if (doShow.HasValue) { SlideTransition slideTransition; if (doShow.Value) slideTransition = new SlideTransition { Mode = SlideTransitionMode.SlideDownFadeIn }; else slideTransition = new SlideTransition { Mode = SlideTransitionMode.SlideUpFadeOut }; ITransition transition = slideTransition.GetTransition(view.ActiveItemContainer); EventHandler transitionComplete = (s, e) => { transition.Stop(); if (!doShow.Value) NotifyOfPropertyChange(() => ActiveItem); transition.Completed -= transitionComplete; }; transition.Completed += transitionComplete; transition.Begin(); } */ #endregion if (activeItem != null) DeactivateItem(activeItem, false); activeItem = value; if (activeItem != null) { if (CurrentCoordinate != null && cityContext.IsCurrentCitySelected()) activeItem.Location.CurrentCoordinate = CurrentCoordinate; ActivateItem(activeItem); } if (!doShow.HasValue || doShow.Value) NotifyOfPropertyChange(() => ActiveItem); }
public void TapPin(StationViewModel sender, System.Windows.Input.GestureEventArgs e) { if (e == null) return; e.Handled = true; if (sender != null) App.CurrentApp.LogAnalyticEvent("Tapped a station pin"); if (sender != null && sender != ActiveItem) { Items.Remove(sender); Items.Add(sender); ActiveItem = sender; sender.Location.OnRouteCalculated += HandleRouteCalculated; sender.Location.RefreshRoute(); } else ActiveItem = null; }