public void DisplayView(NotificationMessage <ViewLoadData <ViewsEnum> > loadData) { if (loadData?.Content == null || loadData.Notification != MessengerHelper.DisplayViewToken) { return; } //Remove all dialogs or previous views from memory _contents.Clear(); var newContent = UIIoCContainer.IsRegistered <IDataContextHolder>(loadData.Content.View.ToString()) ? UIIoCContainer.GetInstance <IDataContextHolder>(loadData.Content.View.ToString()) : (IDataContextHolder)UIIoCContainer.GetInstance(Assembly.GetAssembly(typeof(App)).GetTypes().Single(x => x.Name == loadData.Content.View.ToString()), GetWindowToken(loadData.Content.View.ToString())); if (newContent.DataContext is BaseViewModel) { var viewModel = newContent.DataContext as BaseViewModel; if (viewModel.Initialize(loadData.Content.Parameters)) { return; } } if (newContent is Window) { (newContent as Window).Show(); } else { RealMainWindow.SetNewOverheadContent(loadData.Content.View, newContent); } }
void InnerDisplayDialog(NotificationMessage <DialogLoadData <ViewsEnum> > loadData) { if (loadData?.Content == null || loadData.Notification != MessengerHelper.DisplayDialogToken) { return; } var dialogToken = GetDialogToken(loadData.Content.View.ToString()); var newContent = UIIoCContainer.GetInstance <IDataContextHolder>(dialogToken); if (newContent.DataContext is BaseViewModel) { var viewModel = newContent.DataContext as BaseViewModel; if (viewModel.Initialize(loadData.Content.Parameters)) { return; } viewModel.CallBack = loadData.Content.Callback; viewModel.ShownAsDialog = true; } if (RealMainWindow.OverheadContent.Content != null) { if (!(RealMainWindow.OverheadContent.Content is IDataContextHolder)) { throw new Exception("The presented content must implement IDataContextHolder"); } _contents.Push(RealMainWindow.OverheadContent.Content as IDataContextHolder); } _contents.Push(newContent); RealMainWindow.OverheadContent.Content = newContent; }
void RegisterViewsOnIoC() { //WINDOWS UIIoCContainer.Register(CreateView <MainWindow>); //VIEWS UIIoCContainer.Register <IDataContextHolder>(CreateView <FillerView>, ViewsEnum.Filler.ToString()); }
public static void RegisterServicesOnIoC() { //VIEWMODELS UIIoCContainer.RegisterReal <MainViewModel>(); UIIoCContainer.RegisterReal <FillerViewModel>(); }