2021-03-30 22:34:31 +04:00
|
|
|
|
using ModuleTools.Enums;
|
|
|
|
|
using System;
|
2021-03-29 23:16:11 +04:00
|
|
|
|
|
|
|
|
|
namespace ModuleTools.Attributes
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Настройка отображения свойства класса при выводе объекта класса (требуется для автоматизации вывода элемента,
|
|
|
|
|
/// применяется к классам ElementViewModel)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[AttributeUsage(AttributeTargets.Property)]
|
2021-04-01 21:30:29 +04:00
|
|
|
|
public class ViewModelControlElementPropertyAttribute : Attribute
|
2021-03-29 23:16:11 +04:00
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Название на форме
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DisplayName { get; set; }
|
|
|
|
|
|
2021-03-30 22:34:31 +04:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Через какой тип контрола отображать свойство
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ControlType ControlType { get; set; }
|
|
|
|
|
|
2021-03-29 23:16:11 +04:00
|
|
|
|
/// <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;
|
2021-03-29 23:16:11 +04:00
|
|
|
|
|
|
|
|
|
/// <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;
|
|
|
|
|
|
2021-03-29 23:16:11 +04:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Конструктор
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="displayName">Название на форме</param>
|
2021-03-30 22:34:31 +04:00
|
|
|
|
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
|
2021-04-01 21:30:29 +04:00
|
|
|
|
public ViewModelControlElementPropertyAttribute(string displayName, ControlType controlType)
|
2021-03-29 23:16:11 +04:00
|
|
|
|
{
|
|
|
|
|
DisplayName = displayName;
|
2021-03-30 22:34:31 +04:00
|
|
|
|
ControlType = controlType;
|
2021-03-29 23:16:11 +04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|