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