ControlViewModelBase - класс

Базовый класс для моделей представления элементов управления в автоматическом UI карточки.

Definition

Пространство имён: Tessa.UI.Cards.Controls
Сборка: Tessa.UI (в Tessa.UI.dll) Версия: 3.6.0.22
C#
public abstract class ControlViewModelBase : SupportUnloadingViewModel, 
	IControlViewModel, INotifyPropertyChanged, ISupportTabNotifications, ISupportUnloading, IDataErrorInfo, 
	IAsyncInitializable
Inheritance
Object    NotificationObject    NotificationUIObject    SupportUnloadingViewModel    ControlViewModelBase
Derived
Подробнее
Implements
IDataErrorInfo, INotifyPropertyChanged, IAsyncInitializable, IControlViewModel, ISupportTabNotifications, ISupportUnloading

Конструкторы

ControlViewModelBase Создаёт экземпляр класса с указанием метаинформации об элементе управления.

Свойства

ActualMargin Предпочитаемый отступ элемента управления относительно других элементов управления, расчитываемый блоком и используемый при отображении. Не рекомендуется вручную изменять это значение.
BlockБлок, в котором размещён текущий элемент управления.
CaptionЗаголовок элемента управления.
CaptionStyleСтиль текста для заголовка контрола.
CaptionVisibilityВидимость заголовка элемента управления.
CardTypeControlИнформация о типе отображаемого элемента управления.
ColumnSpan Количество колонок, которые занимает контрол по горизонтали. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 1 и не может быть меньше. Если заданное количество колонок больше, чем общее количество колонок в блоке, то контрол растягивается на ширину строки.
ControlVisibilityВидимость элемента управления.
EmptyColumnsToTheLeft Количество пустых колонок, которые отображаются слева от контрола. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 0 и не может быть меньше. Если заданное количество колонок больше, чем количество колонок в блоке минус количество колонок, занимаемых контролом, то отрисовывается столько пустых колонок, сколько умещается в строке. Если контрол рисуется не с начала строки, и он не умещается вместе с заданным отступом, то он переносится на следующую строку.
Error Сообщение об ошибке, связанное с текущим объектом, или null, если ошибки нет.
FocusableПризнак того, что элемент управления может иметь логический фокус.
FocusPending Признак того, что элемент управления получит логический фокус, как только элемент управления станет доступен, т.е. его свойство [Tessa.UI.Cards.IControlViewModel.IsEnabled] будет равно true.
HasActiveValidation Признак того, что в элементе управления следует включить активную валидацию. При этом если для элемента управления введено некорректное значение, то он будет уведомлять об этом рамкой валидации. Значение устанавливливается равным true обычно после неудачного сохранения карточки. По умолчанию значение равно false.
HorizontalAlignment Выравнивание контрола по горизонтали. По умолчанию контрол выравнивается по ширине Stretch.
Initialized Признак того, что форма уже инициализирована вызовом InitializeAsync(CancellationToken), поэтому повторные вызовы метода будут игнорироваться.
IsEmptyПризнак того, что элемент управления не содержит отображаемых данных.
IsEnabled Признак того, что элемент управления доступен для взаимодействия. Только доступный элемент может получить логический фокус. Свойство следует использовать только для чтения, т.е. можно проверить его значение и подписаться на его изменение в PropertyChanged, но установленное в свойстве значение будет проигнорировано.
IsFocused Признак того, что элемент управления имеет логический фокус. Проверка и установка значения свойства имеет смысл только в случае, если элемент управления может получить логический фокус, т.е. значение свойства [Tessa.UI.Cards.IControlViewModel.Focusable] равно true.
IsReadOnly Признак того, что элемент управления доступен только для чтения или не содержит редактируемых данных. Для контрола "Кнопка" разрешает или запрещает нажатие по кнопке.
IsRequired Признак того, что элемент управления отмечен, как обязательный для заполнения.
IsSpanned Признак того, что элемент управления должен быть растянут на ширину колонки при выводе в несколько колонок.
IsUnloaded Признак того, что объект был выгружен и уже не может использоваться в UI. Например, если объект является контролом карточки, то он становится выгруженным после закрытия формы редактирования строки или пре рефреше карточки.
(Унаследован от SupportUnloadingViewModel)
IsVisibilityRearranged Признак того, что видимость элемента управления была изменена в процессе перерисовки содержимого. Поле используется системой и сбрасывается в false при ручном изменении видимости.
Item Сообщение об ошибке, связанное со свойством текущего объекта, или null, если ошибки нет.
Margin Заданный в настройках отступ элемента управления относительно других элементов управления. По умолчанию отступ отсутствует. Если по одному из направлений (слева, сверху и пр.) задано отрицательное значение, то по этому направлению отступ не отображается (т.е. равен 0).
MaxWidth Максимальная ширина контрола. По умолчанию значение равно double.PositiveInfinity. Значение не может быть меньше 0. При установке значения 0 в действительности устанавливается double.PositiveInfinity, т.к. в настройках контрола 0 эквивалентно отсутствию ограничения на контрол.
MinWidth Минимальная ширина контрола. По умолчанию значение равно 0 и не может быть меньше.
Name Имя элемента управления, по которому он доступен в коллекции, или null, если у элемента управления не задано имя.
RequiredText Текст валидации обязательного для заполнения элемента.
StartAtNewLineПризнак того, что текущий контрол в блоке всегда начинается с новой строки.
ToolTip Всплывающая подсказка для элемента управления или null, если подсказка отсутствует. Пустая строка или строка, состоящая из пробелов, присваивается как null.
ValidationFunc Функция валидации, проверяющая элемент управления на корректность его значения, или null, если дополнительные проверки значения отсутствуют. Проверка на незаполненное значение всё равно выполняется, если элемент управления был отмечен как обязательный для заполнения (в т.ч. посредством валидатора). Для использования функции на элементе управления должна быть включена валидация [Tessa.UI.Cards.IControlViewModel.HasActiveValidation].
VerticalAlignment Выравнивание контрола по вертикали. По умолчанию контрол выравнивается по высоте Stretch.

Методы

CommitChangesAsync Подтверждает изменения для текущего элемента управления. Метод обычно вызывается перед сохранением карточки для того, чтобы элементы управления, у которых состояние ввода зависит от фокуса и других параметров, могли подтвердить введённое значение перед тем, как карточка будет сохранена. Если при выполнении этого метода возникнет исключение, то оно будет зафиксировано в результате.
EqualsDetermines whether the specified object is equal to the current object.
(Унаследован от Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Унаследован от Object)
Focus Устанавливает логический фокус на текущий элемент управления, если он поддерживает логический фокус, т.е. значение свойства [Tessa.UI.Cards.IControlViewModel.Focusable] равно true. Если элемент управления недоступен или не поддерживает логический фокус, то метод возвращает значение false.
GetHashCodeServes as the default hash function.
(Унаследован от Object)
GetState Возвращает текущее состояние элемента управления. Может вернуть null, если элемент управления не имеет состояния.
GetTypeGets the Type of the current instance.
(Унаследован от Object)
HasEmptyValue Возвращает признак того, что элемент управления имеет пустое значение.
InitializeCoreAsyncВыполняет асинхронную инициализацию объекта.
MemberwiseCloneCreates a shallow copy of the current Object.
(Унаследован от Object)
NotifyTabDeselectedAsync Уведомляет текущий объект и все его дочерние объекты о том, что он располагался на выбранной вкладке, после чего выбрали другую вкладку.
NotifyTabSelectedAsync Уведомляет текущий объект и все его дочерние объекты о том, что он расположен в текущей выбранной вкладке. Событие для выбранной вкладки вызывается после того, как было вызвано событие TabDeselected для вкладки, которая перестала быть выбранной.
NotifyUpdateValidation Уведомляет об изменении всех свойств, связанных с валидацией в элементе управления, даже если эти свойства не были изменены.
OnPropertyChanged(PropertyChangedEventArgs) Уведомляет об изменении свойства с именем, заданным в аргументах события.
(Унаследован от NotificationObject)
OnPropertyChanged(String) Уведомляет об изменении свойства с заданным именем у объекта.
(Унаследован от NotificationObject)
OnPropertyChangedAsync(PropertyChangedEventArgs, Boolean) Уведомляет об изменении свойства с именем, заданным в аргументах события, асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationUIObject)
OnPropertyChangedAsync(String, Boolean) Уведомляет об изменении свойства с заданным именем у объекта асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationObject)
OnUnloadingAsync Метод вызывается в процессе выгрузки объекта и выполняет некоторую обработку, например, отписывается от событий и выгружает дочерние объекты (например, контролы в блоке). Исключения в процесс выполнения метода будут поглощены и добавлены в лог.
(Унаследован от SupportUnloadingViewModel)
Rearrange Выполняет перерисовку содержимого в зависимости от состояния объекта с учётом дочерних объектов, в т.ч. от видимости дочерних вложенных форм при их наличии.
RearrangeChildren Выполняет перерисовку содержимого в зависимости от состояния дочерних объектов, в т.ч. от видимости дочерних вложенных форм при их наличии.
RearrangeSelf Выполняет перерисовку содержимого в зависимости от состояния объекта без учёта дочерних объектов.
SetBlockУстанавливает блок, в котором размещён элемент управления.
SetStateAsyncУстанавливает заданное состояние элемента управления.
ToStringReturns a string that represents the current object.
(Унаследован от Object)
UnloadAsync Выполняет выгрузку объекта. Если объект уже был выгружен, то повторная выгрузка не выполняется.
(Унаследован от SupportUnloadingViewModel)

События

PropertyChangedСобытие, уведомляющее об изменении свойства с определённым именем у модели представления.
(Унаследован от NotificationObject)
TabDeselected Событие, происходящее для объекта, который располагался на выбранной вкладке, после чего выбрали другую вкладку.
TabSelected Событие, происходящее при переходе объекта на выбранную вкладку. Событие для выбранной вкладки вызывается после того, как было вызвано событие TabDeselected для вкладки, которая перестала быть выбранной.
Unloaded Событие, возникающее после того, как объект был выгружен и уже не может использоваться в UI. Если на некоторые свойства объекта, связанные с UI, выполнялась подписка, то в обработчике события можно выполнить отписку, а также удалить сам обработчик.
(Унаследован от SupportUnloadingViewModel)

Поля

ActualMarginInternal Предпочитаемый отступ элемента управления относительно других элементов управления, расчитываемый блоком и используемый при отображении. Не рекомендуется вручную изменять это значение.
BlockInternalБлок, в котором размещён текущий элемент управления.
CaptionInternalЗаголовок элемента управления.
CaptionVisibilityInternalВидимость заголовка элемента управления.
ColumnSpanInternal Количество колонок, которые занимает контрол по горизонтали. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 1 и не может быть меньше. Если заданное количество колонок больше, чем общее количество колонок в блоке, то контрол растягивается на ширину строки.
ControlVisibilityInternalВидимость элемента управления.
EmptyColumnsToTheLeftInternal Количество пустых колонок, которые отображаются слева от контрола. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 0 и не может быть меньше. Если заданное количество колонок больше, чем количество колонок в блоке минус количество колонок, занимаемых контролом, то отрисовывается столько пустых колонок, сколько умещается в строке. Если контрол рисуется не с начала строки, и он не умещается вместе с заданным отступом, то он переносится на следующую строку.
HasActiveValidationInternal Признак того, что в элементе управления следует включить активную валидацию. При этом если для элемента управления введено некорректное значение, то он будет уведомлять об этом рамкой валидации. Значение устанавливливается равным true обычно после неудачного сохранения карточки. По умолчанию значение равно false.
HorizontalAlignmentInternal Выравнивание контрола по горизонтали. По умолчанию контрол выравнивается по ширине Stretch.
IsReadOnlyInternal Признак того, что элемент управления доступен только для чтения или не содержит редактируемых данных. Для контрола "Кнопка" разрешает или запрещает нажатие по кнопке.
IsRequiredInternal Признак того, что элемент управления отмечен, как обязательный для заполнения.
IsSpannedInternal Признак того, что элемент управления должен быть растянут на ширину колонки при выводе в несколько колонок.
MarginInternal Заданный в настройках отступ элемента управления относительно других элементов управления. По умолчанию отступ отсутствует. Если по одному из направлений (слева, сверху и пр.) задано отрицательное значение, то по этому направлению отступ не отображается (т.е. равен 0).
MaxWidthInternal Максимальная ширина контрола. По умолчанию значение равно double.PositiveInfinity. Значение не может быть меньше 0. При установке значения 0 в действительности устанавливается double.PositiveInfinity, т.к. в настройках контрола 0 эквивалентно отсутствию ограничения на контрол.
MinWidthInternal Минимальная ширина контрола. По умолчанию значение равно 0 и не может быть меньше.
StartAtNewLineInternalПризнак того, что текущий контрол в блоке всегда начинается с новой строки.
ToolTipInternal Всплывающая подсказка для элемента управления или null, если подсказка отсутствует. Пустая строка или строка, состоящая из пробелов, присваивается как null.
ValidationFuncInternal Признак того, что в элементе управления следует включить активную валидацию. При этом если для элемента управления введено некорректное значение, то он будет уведомлять об этом рамкой валидации. Значение устанавливливается равным true обычно после неудачного сохранения карточки. По умолчанию значение равно false.
VerticalAlignmentInternal Выравнивание контрола по вертикали. По умолчанию контрол выравнивается по высоте Stretch.

Методы расширения

Get
(Определяется ComHelper)
InternalMarkerCanvas Возвращает маркер аннотации
(Определяется AnnotationInternalsAccessor)
Invoke
(Определяется ComHelper)
SelectAll Выделяет весь текст в контроле, если контрол поддерживает выделение текста посредством интерфейса ISupportSelectAll. Возвращает признак того, что текст действительно был выделен.
(Определяется CardUIExtensions)
SelectAllWhenFocused Устанавливает, что для контрола будет выделен весь текст, если он получает фокус. Возвращает признак того, что тип контрола совместим с методом выделением текста. Метод можно вызывать несколько раз для одного и того же контрола.
(Определяется CardUIExtensions)
Set
(Определяется ComHelper)
UnloadAsync Выполняет выгрузку объекта. Если объект уже был выгружен, то повторная выгрузка не выполняется. Возвращает объект, содержащий сообщения, возникшие в процессе выгрузки, в т.ч. ошибки.
(Определяется UIExtensions)

См. также