DepartmentProject/DepartmentPortal/Common/ModuleTools/Attributes/ViewModelOnElementPropertyAttribute.cs

114 lines
3.8 KiB
C#
Raw Normal View History

2021-03-30 22:34:31 +04:00
using ModuleTools.Enums;
using System;
namespace ModuleTools.Attributes
{
/// <summary>
/// Настройка отображения свойства класса при выводе объекта класса (требуется для автоматизации вывода элемента,
/// применяется к классам ElementViewModel)
/// </summary>
[AttributeUsage(AttributeTargets.Property)]
public class ViewModelOnElementPropertyAttribute : Attribute
{
/// <summary>
/// Название на форме
/// </summary>
public string DisplayName { get; set; }
2021-03-30 22:34:31 +04:00
/// <summary>
/// Через какой тип контрола отображать свойство
/// </summary>
public ControlType ControlType { get; set; }
/// <summary>
/// Поле должно быть обязательно заполнено
/// </summary>
public bool MustHaveValue { get; set; } = false;
/// <summary>
/// Запрет на редактирование, только вывод
/// </summary>
public bool ReadOnly { get; set; } = false;
/// <summary>
/// Ширина
/// </summary>
2021-03-30 22:34:31 +04:00
public int? Width { get; set; } = null;
/// <summary>
/// Высота
/// </summary>
2021-03-30 22:34:31 +04:00
public int? Height { get; set; } = null;
/// <summary>
/// Максимальное длина строки
/// </summary>
public int? MaxLength { get; set; } = null;
/// <summary>
/// Минимальное значение для числового параметра
/// </summary>
public decimal? MinValue { get; set; } = null;
/// <summary>
/// Максимальное значение для числового параметра
/// </summary>
public decimal? MaxValue { get; set; } = null;
/// <summary>
/// Количество знаков после запятой
/// </summary>
public int? DecimalPlaces { get; set; } = null;
/// <summary>
/// Минимальное значение для даты
/// </summary>
public DateTime? MinDate { get; set; } = null;
/// <summary>
/// Максимальное значение для даты
/// </summary>
public DateTime? MaxDate { get; set; } = null;
/// <summary>
/// Пользовательский формат отображения даты
/// </summary>
public string CustomDateFormat { get; set; } = null;
/// <summary>
/// Имя контрола (включая namespace) для вызова формы выбора элемента-объекта другого класса
/// </summary>
public string ControlTypeObject { get; set; } = string.Empty;
/// <summary>
/// Имя свйоства, где лежит текстовое значение для ссылочного типа (опсанного через Id на другую сущность)
/// </summary>
public string PropertyNameForTitle { get; set; }
/// <summary>
/// Конструктор
/// </summary>
/// <param name="displayName">Название на форме</param>
2021-03-30 22:34:31 +04:00
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
public ViewModelOnElementPropertyAttribute(string displayName, ControlType controlType)
{
DisplayName = displayName;
2021-03-30 22:34:31 +04:00
ControlType = controlType;
}
/// <summary>
/// Конструктор
/// </summary>
/// <param name="displayName">Название на форме</param>
2021-03-30 22:34:31 +04:00
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
/// <param name="width">Ширина</param>
/// <param name="height">Высота</param>
2021-03-30 22:34:31 +04:00
public ViewModelOnElementPropertyAttribute(string displayName, ControlType controlType, int width, int height)
{
DisplayName = displayName;
2021-03-30 22:34:31 +04:00
ControlType = controlType;
Width = width;
Height = height;
}
}
}