109 lines
3.6 KiB
C#
109 lines
3.6 KiB
C#
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; }
|
|
|
|
/// <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; } = null;
|
|
|
|
/// <summary>
|
|
/// Высота
|
|
/// </summary>
|
|
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>
|
|
/// Конструктор
|
|
/// </summary>
|
|
/// <param name="displayName">Название на форме</param>
|
|
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
|
|
public ViewModelControlElementPropertyAttribute(string displayName, ControlType controlType)
|
|
{
|
|
DisplayName = displayName;
|
|
ControlType = controlType;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Конструктор
|
|
/// </summary>
|
|
/// <param name="displayName">Название на форме</param>
|
|
/// <param name="controlType">Через какой тип контрола отображать свойство</param>
|
|
/// <param name="width">Ширина</param>
|
|
/// <param name="height">Высота</param>
|
|
public ViewModelControlElementPropertyAttribute(string displayName, ControlType controlType, int width, int height)
|
|
{
|
|
DisplayName = displayName;
|
|
ControlType = controlType;
|
|
Width = width;
|
|
Height = height;
|
|
}
|
|
}
|
|
} |