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