public virtual bool CloseWorkspace(IViewServiceProvider provider, IWorkspaceConstruct construct) { bool? confirmation = (construct.ViewModel as IWorkspaceViewModel)?.Closing(provider); if (confirmation.HasValue && !confirmation.Value) { return false; } return Workspaces.Remove(construct); }
public virtual bool CloseWorkspace(IViewServiceProvider provider, IWorkspaceViewModel vm) { if (vm.Closing(provider)) { for (int i = 0; i < Workspaces.Count; i++) { if (Workspaces[i].ViewModel == vm) { Workspaces.RemoveAt(i); return true; } } } return false; }
public static void AddService <T>(IViewServiceProvider provider, Func <T> serviceFactory, string?key = null) where T : IViewService { var container = provider as IViewServiceContainer; if (container == null) { throw new InvalidCastException(); } container.AddService <T>(serviceFactory, key); }
public MainWindowViewModel(IViewServiceProvider viewServiceProvider) { _viewService = viewServiceProvider; _errorMessages.CollectionChanged += (_, __) => HasErrorMessages = _errorMessages.Count > 0; _host = new CsvEditSharpConfigurationHost(); Workspace = new CsvEditSharpWorkspace(_host, _errorMessages); ConfigurationDoc = new TextDocument(StringTextSource.Empty); QueryDoc = new TextDocument(new StringTextSource("Query<FieldData>( records => records.Where(row => true).OrderBy(row => row) );")); CurrentFilePath = string.Empty; CurrentFileName = "(Empty)"; CurrentConfigName = "(Empty)"; SelectedTemplate = ConfigFileTemplates.First(); SelectedTab = 0; }
public static void AddService <T>(this IViewServiceProvider self, Func <T> serviceFactory, string?key = null) where T : IViewService => ViewService.AddService <T>(self, serviceFactory, key);
/// <summary> /// The view service will invoke this method to determine if it is OK to close the workspace. /// </summary> /// <param name="svcs">use the view service to display any confirmation</param> /// <param name="prompt"></param> /// <returns></returns> public virtual bool Closing(IViewServiceProvider provider) { return true; }
public virtual async Task LoadAsync(IViewServiceProvider provider) { await Task.Run(new Action(() => { })); }