Initial Commit
This commit is contained in:
110
PortfolioManager/ViewModels/WorkspaceViewModel.cs
Normal file
110
PortfolioManager/ViewModels/WorkspaceViewModel.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using Avalonia.Controls;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
|
||||
namespace PortfolioManager.ViewModels
|
||||
{
|
||||
public delegate void InstantiateWorkspace(SaveParameters saveParameters);
|
||||
|
||||
public abstract class WorkspaceViewModel : ViewModelBase
|
||||
{
|
||||
// Relay Command
|
||||
private RelayCommand closeCommand;
|
||||
|
||||
// Events
|
||||
public event EventHandler RequestClose;
|
||||
|
||||
private InstantiateWorkspace workspaceInstantiator;
|
||||
private bool canClose = true;
|
||||
private bool isClosed = false;
|
||||
private String title = "WorkspaceViewModel";
|
||||
|
||||
public WorkspaceViewModel Referer { get; set; }
|
||||
|
||||
protected WorkspaceViewModel()
|
||||
{
|
||||
}
|
||||
|
||||
public InstantiateWorkspace WorkspaceInstantiator
|
||||
{
|
||||
get
|
||||
{
|
||||
return workspaceInstantiator;
|
||||
}
|
||||
set
|
||||
{
|
||||
workspaceInstantiator = value;
|
||||
}
|
||||
}
|
||||
|
||||
public IRelayCommand CloseCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null == closeCommand)
|
||||
{
|
||||
Action closeAction = delegate ()
|
||||
{
|
||||
this.OnRequestClose();
|
||||
};
|
||||
closeCommand = new RelayCommand(delegate () { this.OnRequestClose(); });
|
||||
}
|
||||
return closeCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsClosed
|
||||
{
|
||||
get { return isClosed; }
|
||||
set
|
||||
{
|
||||
if (isClosed != value)
|
||||
{
|
||||
isClosed = value;
|
||||
base.OnPropertyChanged("IsClosed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanClose
|
||||
{
|
||||
get { return canClose; }
|
||||
set
|
||||
{
|
||||
if (canClose != value)
|
||||
{
|
||||
canClose = value;
|
||||
base.OnPropertyChanged("CanClose");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual String Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return title;
|
||||
}
|
||||
set
|
||||
{
|
||||
title = value;
|
||||
base.OnPropertyChanged("Title");
|
||||
}
|
||||
}
|
||||
|
||||
public virtual String Header
|
||||
{
|
||||
get
|
||||
{
|
||||
return title;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnRequestClose()
|
||||
{
|
||||
EventHandler handler = this.RequestClose;
|
||||
if (null != handler) handler(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user