DepartmentProject/DepartmentPortal/Common/ToolsModule/ManagmentEntity/ViewModelControlElementPropertyAttribute.cs

93 lines
3.0 KiB
C#

using System;
namespace ToolsModule.ManagmentEntity
{
/// <summary>
/// Настройка отображения свойства класса при выводе объекта класса (требуется для автоматизации вывода элемента,
/// применяется к классам ElementViewModel)
/// </summary>
[AttributeUsage(AttributeTargets.Property)]
public class ViewModelControlElementPropertyAttribute : Attribute
{
/// <summary>
/// Название на форме
/// </summary>
public string DisplayName { get; set; }
/// <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>
public int Width { get; set; } = 0;
/// <summary>
/// Высота
/// </summary>
public int Height { get; set; } = 0;
/// <summary>
/// Максимальное длина строки
/// </summary>
public int MaxLength { get; set; } = 0;
/// <summary>
/// Минимальное значение для числового параметра
/// </summary>
public double MinValue { get; set; } = 0;
/// <summary>
/// Максимальное значение для числового параметра
/// </summary>
public double MaxValue { get; set; } = 0;
/// <summary>
/// Количество знаков после запятой
/// </summary>
public int DecimalPlaces { get; set; } = 0;
/// <summary>
/// Минимальное значение для даты
/// </summary>
public DateTime MinDate { get; set; } = DateTime.MinValue;
/// <summary>
/// Максимальное значение для даты
/// </summary>
public DateTime MaxDate { get; set; } = DateTime.MinValue;
/// <summary>
/// Пользовательский формат отображения даты
/// </summary>
public string CustomDateFormat { get; set; } = null;
/// <summary>
/// Имя контрола (включая namespace) для вызова формы выбора элемента-объекта другого класса
/// </summary>
public string ControlTypeObject { get; set; } = string.Empty;
/// <summary>
/// Конструктор
/// </summary>
/// <param name="displayName">Название на форме</param>
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
public ViewModelControlElementPropertyAttribute(string displayName, ControlType controlType)
{
DisplayName = displayName;
ControlType = controlType;
}
}
}