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; } }
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); }
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); } }
public void Close(ViewFor view) { switch (view) { case ViewFor.MainWindow: { mainWindow.Close(); } break; case ViewFor.ConfigWindow: { UnSubscribe(configWindow); configWindow.Close(); configWindow = null; } break; } }
public abstract object GetView(ViewFor view);
public override object GetView(ViewFor view) { return(views[view]); }
public void SetView(ViewFor viewType, object view) { views.Add(viewType, view); }