コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        void RegisterViewsOnIoC()
        {
            //WINDOWS
            UIIoCContainer.Register(CreateView <MainWindow>);


            //VIEWS
            UIIoCContainer.Register <IDataContextHolder>(CreateView <FillerView>, ViewsEnum.Filler.ToString());
        }
コード例 #4
0
 public static void RegisterServicesOnIoC()
 {
     //VIEWMODELS
     UIIoCContainer.RegisterReal <MainViewModel>();
     UIIoCContainer.RegisterReal <FillerViewModel>();
 }