33 lines
730 B
C#
33 lines
730 B
C#
|
|
using Dock.Model.ReactiveUI.Controls;
|
||
|
|
|
||
|
|
using InkForge.Desktop.Managers;
|
||
|
|
using InkForge.Desktop.ViewModels.Workspaces;
|
||
|
|
|
||
|
|
using ReactiveUI;
|
||
|
|
|
||
|
|
namespace InkForge.Desktop.ViewModels.Tools;
|
||
|
|
|
||
|
|
public class WorkspaceTool : Tool
|
||
|
|
{
|
||
|
|
private WorkspaceViewModel? _workspace;
|
||
|
|
|
||
|
|
public WorkspaceViewModel? Workspace
|
||
|
|
{
|
||
|
|
get => _workspace;
|
||
|
|
private set => this.RaiseAndSetIfChanged(ref _workspace, value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public WorkspaceTool(WorkspaceManager workspaceManager, IWorkspaceViewModelFactory workspaceViewModelFactory)
|
||
|
|
{
|
||
|
|
Title = "Workspace";
|
||
|
|
CanClose = false;
|
||
|
|
|
||
|
|
workspaceManager.WhenAnyValue(v => v.Workspace,
|
||
|
|
v => v switch
|
||
|
|
{
|
||
|
|
{ } => workspaceViewModelFactory.Create(v),
|
||
|
|
_ => null
|
||
|
|
}).BindTo(this, v => v.Workspace);
|
||
|
|
}
|
||
|
|
}
|