Exemplo n.º 1
0
        public void Show(ViewFor view)
        {
            switch (view)
            {
            case ViewFor.MainWindow:
            {
                mainWindow = (IMainWindow)serviceProvider.GetView(ViewFor.MainWindow);
                Subscribe(mainWindow);
                mainWindow.Show();
            }
            break;

            case ViewFor.ConfigWindow:
            {
                var newConfigWindow = (IConfigWindow)serviceProvider.GetView(ViewFor.ConfigWindow);
                // service provider returns null when configwindow is already opened so it returns if the given object is null
                if (newConfigWindow == null)
                {
                    return;
                }
                Subscribe(newConfigWindow);
                newConfigWindow.Show();
                configWindow = newConfigWindow;
            }
            break;
            }
        }
Exemplo n.º 2
0
        protected override View GetViewFor(int section, int index)
        {
            var item = (T)GetItemAt(section, index);

            if (item == null)
            {
                return(null);
            }
            if (!CurrentViews.TryGetValue(item, out var view) || (view?.IsDisposed ?? true))
            {
                using (new StateBuilder(State))
                {
                    if (item is INotifyPropertyRead read)
                    {
                        State.StartMonitoring(read);
                    }
                    view = ViewFor?.Invoke(item);
                }
                if (view == null)
                {
                    return(null);
                }
                CurrentViews[item] = view;
                view.Parent        = this;
            }
            return(view);
        }
Exemplo n.º 3
0
        public override object GetView(ViewFor view)
        {
            switch (view)
            {
            case ViewFor.MainWindow:
            {
                if (mainWindow == null)
                {
                    mainWindow = new MainWindow();
                }
                mainWindow.DataContext = mainWindowViewModel;
                return(mainWindow);
            }

            case ViewFor.ConfigWindow:
            {
                if (ConfigWindow.IsOpened)
                {
                    return(null);
                }

                var configWindow = new ConfigWindow();
                configWindow.DataContext = configWindowViewModel;
                return(configWindow);
            }

            default:
                return(null);
            }
        }
Exemplo n.º 4
0
        public void Close(ViewFor view)
        {
            switch (view)
            {
            case ViewFor.MainWindow:
            {
                mainWindow.Close();
            }
            break;

            case ViewFor.ConfigWindow:
            {
                UnSubscribe(configWindow);
                configWindow.Close();
                configWindow = null;
            }
            break;
            }
        }
Exemplo n.º 5
0
 public abstract object GetView(ViewFor view);
Exemplo n.º 6
0
 public override object GetView(ViewFor view)
 {
     return(views[view]);
 }
Exemplo n.º 7
0
 public void SetView(ViewFor viewType, object view)
 {
     views.Add(viewType, view);
 }