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

94 lines
3.0 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 ViewModelControlElementPropertyAttribute : 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-04-03 11:38:27 +04:00
public int Width { get; set; } = 0;
/// <summary>
/// Высота
/// </summary>
2021-04-03 11:38:27 +04:00
public int Height { get; set; } = 0;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Максимальное длина строки
/// </summary>
2021-04-03 11:38:27 +04:00
public int MaxLength { get; set; } = 0;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Минимальное значение для числового параметра
/// </summary>
2021-04-12 10:01:42 +04:00
public double MinValue { get; set; } = 0;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Максимальное значение для числового параметра
/// </summary>
2021-04-12 10:01:42 +04:00
public double MaxValue { get; set; } = 0;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Количество знаков после запятой
/// </summary>
2021-04-03 11:38:27 +04:00
public int DecimalPlaces { get; set; } = 0;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Минимальное значение для даты
/// </summary>
2021-04-03 11:38:27 +04:00
public DateTime MinDate { get; set; } = DateTime.MinValue;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Максимальное значение для даты
/// </summary>
2021-04-03 11:38:27 +04:00
public DateTime MaxDate { get; set; } = DateTime.MinValue;
2021-03-30 22:34:31 +04:00
/// <summary>
/// Пользовательский формат отображения даты
/// </summary>
public string CustomDateFormat { get; set; } = null;
/// <summary>
/// Имя контрола (включая namespace) для вызова формы выбора элемента-объекта другого класса
/// </summary>
public string ControlTypeObject { get; set; } = string.Empty;
/// <summary>
/// Конструктор
/// </summary>
/// <param name="displayName">Название на форме</param>
2021-03-30 22:34:31 +04:00
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
public ViewModelControlElementPropertyAttribute(string displayName, ControlType controlType)
{
DisplayName = displayName;
2021-03-30 22:34:31 +04:00
ControlType = controlType;
}
}
}