DepartmentProject/DepartmentPortal/Common/ModelTools/Attributes/ViewModelPropertyAttribute.cs

68 lines
2.2 KiB
C#

using System;
namespace ModelTools.Attributes
{
/// <summary>
/// Настройка отображения элемента в контролах
/// </summary>
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class ViewModelPropertyAttribute : Attribute
{
/// <summary>
/// Используется при выводе списка
/// </summary>
public bool UseOnList { get; set; }
/// <summary>
/// Используется при выводе элемента
/// </summary>
public bool UseOnElement { get; set; }
/// <summary>
/// Название на форме
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// Скрывать или нет при выводе списка
/// </summary>
public bool IsHide { get; set; }
/// <summary>
/// Ширина колонки
/// </summary>
public int? ColumnWidth { get; set; }
/// <summary>
/// Настройка отображения элемента в контролах
/// </summary>
/// <param name="displayName">Название на форме</param>
/// <param name="useOnList">Используется при выводе списка</param>
/// <param name="useOnElement">Используется при выводе элемента</param>
/// <param name="isHide">Скрывать или нет</param>
public ViewModelPropertyAttribute(string displayName, bool useOnList, bool useOnElement, bool isHide = false)
{
DisplayName = displayName;
UseOnList = useOnList;
UseOnElement = useOnElement;
ColumnWidth = null;
IsHide = isHide;
}
/// <summary>
/// Конструктор
/// </summary>
/// <param name="displayName">Название на форме</param>
/// <param name="useOnList">Используется при выводе списка</param>
/// <param name="useOnElement">Используется при выводе элемента</param>
/// <param name="columnWidth">Ширина колонки</param>
public ViewModelPropertyAttribute(string displayName, bool useOnList, bool useOnElement, int columnWidth)
{
DisplayName = displayName;
UseOnList = useOnList;
UseOnElement = useOnElement;
ColumnWidth = columnWidth;
IsHide = false;
}
}
}