private void DynamicViewHost_OnSetAsCurrentView(DynamicViewBase dynamicView, NavigationDirections navigationDirection) { _newView = dynamicView; _newViewDirection = navigationDirection; CurrentDynamicView.OnFadeOutComplete -= _currentDynamicView_OnFadeOutComplete; _currentDynamicView_OnFadeOutComplete = () => { var oldDV = CurrentDynamicView.GetHashCode(); var newDV = dynamicView.GetHashCode(); dynamicView.SetDirection(navigationDirection); CurrentDynamicView = dynamicView; if (oldDV == newDV) { CurrentDynamicView.FadeIn(); } }; CurrentDynamicView.OnFadeOutComplete += _currentDynamicView_OnFadeOutComplete; //CurrentDynamicView.OnFadeOutComplete += CurrentDynamicView_OnFadeOutComplete; CurrentDynamicView.SetDirection(navigationDirection); CurrentDynamicView.FadeOut(); }
private void CurrentDynamicView_OnFadeOutComplete() { var oldDV = CurrentDynamicView.GetHashCode(); _newView.SetDirection(_newViewDirection); CurrentDynamicView.OnFadeOutComplete -= CurrentDynamicView_OnFadeOutComplete; CurrentDynamicView = _newView; if (oldDV == _newView.GetHashCode()) { CurrentDynamicView.FadeIn(); } _newView = null; }