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; #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 /// /// 返回当前权限是否发生了变化。 /// 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 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); } internal void Update() { _previousPermission = _myPermission; } #endregion }