Skip to content

Instantly share code, notes, and snippets.

@vermegi
Created December 15, 2013 16:25
public class WindowsStoreNavigator : INavigate
{
private readonly Frame _frame;
private readonly IKnowWhereYourViewIs _viewLocator;
private readonly ICreateInstances _ioc;
public WindowsStoreNavigator(Frame frame, IKnowWhereYourViewIs viewLocator, ICreateInstances ioc)
{
_frame = frame;
_viewLocator = viewLocator;
_ioc = ioc;
}
public void NavigateTo<TViewModel>() where TViewModel : class
{
var viewToNavigateTo = _viewLocator.FindViewFor<TViewModel>();
_frame.Navigate(viewToNavigateTo, _ioc.CreateInstanceOf<TViewModel>());
}
public void NavigateTo<TViewModel, TRequest>(TRequest request) where TViewModel : class
{
var viewToNavigateTo = _viewLocator.FindViewFor<TViewModel>();
var viewModel = _ioc.CreateInstanceOf<TViewModel>();
var viewmodelHandler = viewModel as IHandle<TRequest>;
if (viewmodelHandler != null && request != null)
viewmodelHandler.Handle(request);
_frame.Navigate(viewToNavigateTo, viewModel);
}
public void GoBack()
{
_frame.GoBack();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment