private void ClearCacheIfNeed(IDataContext context, IViewModel viewModelTo)
        {
            if (!context.GetData(ClearNavigationCache) || CachePolicy == null)
            {
                return;
            }
            var viewModels = CachePolicy.Invalidate(context);

            foreach (var viewModelFrom in viewModels.Reverse())
            {
                var navigationContext = new NavigationContext(NavigationType.Page, NavigationMode.Reset, viewModelFrom, viewModelTo, this);
                if (!OnViewModelClosed(viewModelFrom, navigationContext, this, true))
                {
                    CompleteOperationCallback(viewModelFrom, navigationContext);
                }
            }
        }