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;
}
}
}