public virtual async Task Switch(Type modelType, object args = null, string animName = null) { if (!NavigationTask.IsCompleted) { return; } var item = CurrentLayer.FirstOrDefault(i => i.Model.GetType() == modelType); if (item != CurrentItem) { CurrentModel.Hide(); CurrentLayer.Remove(item); CurrentLayer.Insert(0, item); CurrentModel.Show(args: new GalleyArgsWrapper(args)); await(NavigationTask = SuperView.SwitchAnimate(CurrentView, animName).Execute(true)); } }