Sic.Framework-Nanjing-Baishi/MECF.Framework.UI.Client/CenterViews/Configs/Roles/PermissionControlItem.cs

105 lines
2.4 KiB
C#

using System;
using Caliburn.Micro.Core;
namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles;
public sealed class PermissionControlItem : PropertyChangedBase, ICloneable
{
#region Variables
private string _permissionId;
private string _name;
private string _description;
private PermissionType _myPermission;
private PermissionType _previousPermission;
private bool _comboBoxSaved;
#endregion
#region Construcors
public PermissionControlItem(string name, PermissionType permission, string id = "", string description = "")
{
_permissionId = id;
_name = name;
_description = description;
_myPermission = permission;
_previousPermission = permission;
}
#endregion
#region Properties
/// <summary>
/// 返回当前权限是否发生了变化。
/// </summary>
public bool IsChanged => _myPermission != _previousPermission;
public string ID
{
get => _permissionId;
set
{
if (value != _permissionId)
_permissionId = value;
}
}
public PermissionType Permission
{
get => _myPermission;
set
{
_myPermission = value;
NotifyOfPropertyChange();
NotifyOfPropertyChange(nameof(IsChanged));
}
}
public bool ComboBoxSaved
{
get => _comboBoxSaved;
set
{
if (_comboBoxSaved != value)
{
_comboBoxSaved = value;
NotifyOfPropertyChange();
}
}
}
public string Name
{
get => _name;
set
{
if (value != _name)
_name = value;
}
}
public string Description
{
get => _description;
set
{
if (value != _description)
_description = value;
}
}
#endregion
#region Methods
public object Clone()
{
return new PermissionControlItem(Name, Permission, ID, Description);
}
#endregion
}