GridViewModel - класс

Таблица для отображения и редактирования коллекционной секции.

Definition

Пространство имён: Tessa.UI.Cards.Controls
Сборка: Tessa.UI (в Tessa.UI.dll) Версия: 3.6.0.22
C#
public sealed class GridViewModel : ControlViewModelBase, 
	IAutoSizeTessaListViewViewModel, ITessaListViewViewModel, INotifyPropertyChanged
Inheritance
Object    NotificationObject    NotificationUIObject    SupportUnloadingViewModel    ControlViewModelBase    GridViewModel
Implements
INotifyPropertyChanged, IAutoSizeTessaListViewViewModel, ITessaListViewViewModel

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

GridViewModelИнициализирует новый экземпляр класса GridViewModel

Свойства

ActualMargin Предпочитаемый отступ элемента управления относительно других элементов управления, расчитываемый блоком и используемый при отображении. Не рекомендуется вручную изменять это значение.
(Унаследован от ControlViewModelBase)
AddRowButton Кнопка добавления строки. Нельзя присвоить значение null. Видимость кнопки устанавливается автоматически, не рекомендуется его изменять без необходимости.
AlwaysShowBottomToolbar Признак того, что необходимо всегда показывать панель под таблицей с окном поиска и кнопкой мультивыбора (в web-клиенте), даже если все другие кнопки на нижней панели скрыты. По умолчанию равно false.
AutoSize Признак того, что в таблице включено автоопределение размера столбцов.
AutoSizeRowLimit Максимальное количество строк, при которых контрол функционирует в режиме автоопределения размера столбцов. Если строк становится больше заданного количества, то AutoSize устанавливается равным false. Если задано -1, то автоопределение размера столбцов всегда выключено (даже когда ноль строк), а если int.MaxValue - то всегда включено. Изменение этого свойства не изменяет автоматически свойство AutoSize, для этого используйте метод UpdateAutoSizeFromRowLimit. Также свойство автоматически обновляется при добавлении строк средствами контрола (AutoSize может быть установлен равным false, если он был равен true и не выполняется условие по AutoSizeRowLimit).
BlockБлок, в котором размещён текущий элемент управления.
(Унаследован от ControlViewModelBase)
CanSort Признак того, что пользователь может сортировать таблицу по колонкам, кликая по их заголовкам.
CaptionЗаголовок элемента управления.
(Унаследован от ControlViewModelBase)
CaptionStyleСтиль текста для заголовка контрола.
(Унаследован от ControlViewModelBase)
CaptionVisibilityВидимость заголовка элемента управления.
(Унаследован от ControlViewModelBase)
CardTypeControlИнформация о типе отображаемого элемента управления.
(Унаследован от ControlViewModelBase)
CellFormatFunc Возвращает или задаёт функцию дополнительного форматирования значения отображаемого в ячейке таблицы. Может быть не задана.
Columns Список колонок таблицы. Свойство устанавливается автоматически. После изменения списка вызовите метод UpdateColumnsAsync.
ColumnsInfo Информация о колонках.
ColumnSpan Количество колонок, которые занимает контрол по горизонтали. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 1 и не может быть меньше. Если заданное количество колонок больше, чем общее количество колонок в блоке, то контрол растягивается на ширину строки.
(Унаследован от ControlViewModelBase)
ContextMenuGenerators Список методов, выполняющих построение контекстного меню для строк таблицы.
ControlVisibilityВидимость элемента управления.
(Унаследован от ControlViewModelBase)
DeleteRowsButton Кнопка удаления выделенных строк. Нельзя присвоить значение null. Видимость кнопки устанавливается автоматически, не рекомендуется его изменять без необходимости.
EditRowCommand Команда, выполняемая при открытии окна редактирования строки (например, по двойному клику). Команду нельзя изменить в расширениях, используйте событие RowInvoked.
EmptyColumnsToTheLeft Количество пустых колонок, которые отображаются слева от контрола. Неактуально для контролов, растягиваемых по ширине всей строки. По умолчанию значение равно 0 и не может быть меньше. Если заданное количество колонок больше, чем количество колонок в блоке минус количество колонок, занимаемых контролом, то отрисовывается столько пустых колонок, сколько умещается в строке. Если контрол рисуется не с начала строки, и он не умещается вместе с заданным отступом, то он переносится на следующую строку.
(Унаследован от ControlViewModelBase)
Error Сообщение об ошибке, связанное с текущим объектом, или null, если ошибки нет.
(Унаследован от ControlViewModelBase)
FilterRowFunc

Функция, которая возвращает true для тех строк, которые следует отображать пользователю, или false для строк, которые должны быть скрыты от пользователя.

Функция вызывается только для тех строк, которые не скрыты по другим причинам, например, которые не скрыты посредством строки фильтра или удалённых строк с состоянием Deleted.

Если свойство возвращает null, то отображаются все доступные строки, как если бы функция всегда возвращала true.

После изменения свойства рекомендуется вызвать метод RefreshRowFilteringAsync(CancellationToken) для того, чтобы фильтр был применён к текущим отображаемым строкам.

FocusableПризнак того, что элемент управления может иметь логический фокус.
(Унаследован от ControlViewModelBase)
FocusPending Признак того, что элемент управления получит логический фокус, как только элемент управления станет доступен, т.е. его свойство [Tessa.UI.Cards.IControlViewModel.IsEnabled] будет равно true.
(Унаследован от ControlViewModelBase)
HasActiveValidation Признак того, что в элементе управления следует включить активную валидацию. При этом если для элемента управления введено некорректное значение, то он будет уведомлять об этом рамкой валидации. Значение устанавливливается равным true обычно после неудачного сохранения карточки. По умолчанию значение равно false.
(Унаследован от ControlViewModelBase)
HorizontalAlignment Выравнивание контрола по горизонтали. По умолчанию контрол выравнивается по ширине Stretch.
(Унаследован от ControlViewModelBase)
Initialized Признак того, что форма уже инициализирована вызовом InitializeAsync(CancellationToken), поэтому повторные вызовы метода будут игнорироваться.
(Унаследован от ControlViewModelBase)
IsEmptyПризнак того, что элемент управления не содержит отображаемых данных.
(Унаследован от ControlViewModelBase)
IsEnabled Признак того, что элемент управления доступен для взаимодействия. Только доступный элемент может получить логический фокус. Свойство следует использовать только для чтения, т.е. можно проверить его значение и подписаться на его изменение в PropertyChanged, но установленное в свойстве значение будет проигнорировано.
(Унаследован от ControlViewModelBase)
IsFocused Признак того, что элемент управления имеет логический фокус. Проверка и установка значения свойства имеет смысл только в случае, если элемент управления может получить логический фокус, т.е. значение свойства [Tessa.UI.Cards.IControlViewModel.Focusable] равно true.
(Унаследован от ControlViewModelBase)
IsReadOnly Признак того, что элемент управления доступен только для чтения или не содержит редактируемых данных. Для контрола "Кнопка" разрешает или запрещает нажатие по кнопке.
(Унаследован от ControlViewModelBase)
IsRequired Признак того, что элемент управления отмечен, как обязательный для заполнения.
(Унаследован от ControlViewModelBase)
IsSpanned Признак того, что элемент управления должен быть растянут на ширину колонки при выводе в несколько колонок.
(Унаследован от ControlViewModelBase)
IsUnloaded Признак того, что объект был выгружен и уже не может использоваться в UI. Например, если объект является контролом карточки, то он становится выгруженным после закрытия формы редактирования строки или пре рефреше карточки.
(Унаследован от SupportUnloadingViewModel)
IsVisibilityRearranged Признак того, что видимость элемента управления была изменена в процессе перерисовки содержимого. Поле используется системой и сбрасывается в false при ручном изменении видимости.
(Унаследован от ControlViewModelBase)
Item Сообщение об ошибке, связанное со свойством текущего объекта, или null, если ошибки нет.
(Унаследован от ControlViewModelBase)
KeyDownHandlers Список методов, выполняющихся при обработке нажатия клавиши.
LeftButtons Дополнительные кнопки под таблицей слева.
Margin Заданный в настройках отступ элемента управления относительно других элементов управления. По умолчанию отступ отсутствует. Если по одному из направлений (слева, сверху и пр.) задано отрицательное значение, то по этому направлению отступ не отображается (т.е. равен 0).
(Унаследован от ControlViewModelBase)
MaxHeight Максимальная высота контрола. Укажите null, если высота должна быть неограничена.
MaxWidth Максимальная ширина контрола. По умолчанию значение равно double.PositiveInfinity. Значение не может быть меньше 0. При установке значения 0 в действительности устанавливается double.PositiveInfinity, т.к. в настройках контрола 0 эквивалентно отсутствию ограничения на контрол.
(Унаследован от ControlViewModelBase)
MinWidth Минимальная ширина контрола. По умолчанию значение равно 0 и не может быть меньше.
(Унаследован от ControlViewModelBase)
MoveRowDownCommand Команда, выполняемая при перемещении выбранных строк таблицы вниз на одну строку. Команду нельзя изменить в расширениях.
MoveRowUpCommand Команда, выполняемая при перемещении выбранных строк таблицы вверх на одну строку. Команду нельзя изменить в расширениях.
MoveUpDownButtonsVisibility Видимость для кнопок перемещения строк вверх/вниз. Свойство устанавливается автоматически, не рекомендуется его изменять без необходимости.
Name Имя элемента управления, по которому он доступен в коллекции, или null, если у элемента управления не задано имя.
(Унаследован от ControlViewModelBase)
RequiredText Текст валидации обязательного для заполнения элемента.
(Унаследован от ControlViewModelBase)
RightButtons Дополнительные кнопки под таблицей справа.
Rows Список строк в таблице. Не рекомендуется изменять список строк через это свойство. Используйте модель карточки.
ScrollWithMouse Признак того, что скроллинг мышью по умолчанию работает, когда в таблице есть собственный скролл. По умолчанию равно false. Не указывайте true, если снаружи есть общий скролл для всех блоков карточки.
SearchBoxVisibility Видимость для поля поиска SearchText. Свойство устанавливается автоматически, не рекомендуется его изменять без необходимости.
SearchText Текст, поиск для которого выполняется. Может быть равен null, пустой строке или строке из пробелов, в этом случае фильтр игнорируется.
SelectedRow Выбранная строка. Чтобы изменить выбранную строку, достаточно присвоить объект строки в этом свойстве, при этом такой объект CardRowViewModel должен содержаться в списке строк Rows.
SelectedRows Коллекция выбранных строк. Не рекомендуется изменять список строк через это свойство. Используйте свойство IsSelected в объекте CardRowViewModel, чтобы выбрать несколько строк или снять выделение.
SelectionMode Способ выбора строк в таблице. Позволяет включить или отключить множественный выбор строк в таблице.
StartAtNewLineПризнак того, что текущий контрол в блоке всегда начинается с новой строки.
(Унаследован от ControlViewModelBase)
ToolTip Всплывающая подсказка для элемента управления или null, если подсказка отсутствует. Пустая строка или строка, состоящая из пробелов, присваивается как null.
(Унаследован от ControlViewModelBase)
ValidationFunc Функция валидации, проверяющая элемент управления на корректность его значения, или null, если дополнительные проверки значения отсутствуют. Проверка на незаполненное значение всё равно выполняется, если элемент управления был отмечен как обязательный для заполнения (в т.ч. посредством валидатора). Для использования функции на элементе управления должна быть включена валидация [Tessa.UI.Cards.IControlViewModel.HasActiveValidation].
(Унаследован от ControlViewModelBase)
VerticalAlignment Выравнивание контрола по вертикали. По умолчанию контрол выравнивается по высоте Stretch.
(Унаследован от ControlViewModelBase)

Методы

AddRowAsync Открывает диалог добавления строки в заданную позицию.
CommitChangesAsync Подтверждает изменения для текущего элемента управления. Метод обычно вызывается перед сохранением карточки для того, чтобы элементы управления, у которых состояние ввода зависит от фокуса и других параметров, могли подтвердить введённое значение перед тем, как карточка будет сохранена. Если при выполнении этого метода возникнет исключение, то оно будет зафиксировано в результате.
(Унаследован от ControlViewModelBase)
DeleteRowsAsync Удаляет заданные строки с учётом визуальных изменений в контроле. При этом выполняются обработчики события RowInvoked, которые могут запретить удаление некоторых строк или вывести на экран окна с ошибками.
EditRowAsync Открывает заданную строку в диалоге редактирования. Строка должна быть уже добавлена в этом элементе управления.
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.
(Унаследован от ControlViewModelBase)
GenerateContextMenuAsync Создаёт контекстное меню для заданной строки таблицы. Возвращает null, если контекстное меню отсутствует.
GetHashCodeServes as the default hash function.
(Унаследован от Object)
GetState Возвращает текущее состояние элемента управления. Может вернуть null, если элемент управления не имеет состояния.
(Переопределяет ControlViewModelBaseGetState)
GetTypeGets the Type of the current instance.
(Унаследован от Object)
HandleKeyDownAsync Выполняет обработку нажатия клавиши, когда фокус находится на элементе управления.
HasEmptyValue Возвращает признак того, что элемент управления имеет пустое значение.
(Унаследован от ControlViewModelBase)
InitializeCoreAsyncВыполняет асинхронную инициализацию объекта.
(Переопределяет ControlViewModelBaseInitializeCoreAsync(CancellationToken))
MemberwiseCloneCreates a shallow copy of the current Object.
(Унаследован от Object)
NotifyTabDeselectedAsync Уведомляет текущий объект и все его дочерние объекты о том, что он располагался на выбранной вкладке, после чего выбрали другую вкладку.
(Унаследован от ControlViewModelBase)
NotifyTabSelectedAsync Уведомляет текущий объект и все его дочерние объекты о том, что он расположен в текущей выбранной вкладке. Событие для выбранной вкладки вызывается после того, как было вызвано событие TabDeselected для вкладки, которая перестала быть выбранной.
(Унаследован от ControlViewModelBase)
NotifyUpdateValidation Уведомляет об изменении всех свойств, связанных с валидацией в элементе управления, даже если эти свойства не были изменены.
(Унаследован от ControlViewModelBase)
OnPropertyChanged(PropertyChangedEventArgs)
(Переопределяет NotificationObjectOnPropertyChanged(PropertyChangedEventArgs))
OnPropertyChanged(String) Уведомляет об изменении свойства с заданным именем у объекта.
(Унаследован от NotificationObject)
OnPropertyChangedAsync(PropertyChangedEventArgs, Boolean) Уведомляет об изменении свойства с именем, заданным в аргументах события, асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationUIObject)
OnPropertyChangedAsync(String, Boolean) Уведомляет об изменении свойства с заданным именем у объекта асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationObject)
OnUnloadingAsync Метод вызывается в процессе выгрузки объекта и выполняет некоторую обработку, например, отписывается от событий и выгружает дочерние объекты (например, контролы в блоке). Исключения в процесс выполнения метода будут поглощены и добавлены в лог.
(Переопределяет SupportUnloadingViewModelOnUnloadingAsync(IValidationResultBuilder))
Rearrange Выполняет перерисовку содержимого в зависимости от состояния объекта с учётом дочерних объектов, в т.ч. от видимости дочерних вложенных форм при их наличии.
(Унаследован от ControlViewModelBase)
RearrangeChildren Выполняет перерисовку содержимого в зависимости от состояния дочерних объектов, в т.ч. от видимости дочерних вложенных форм при их наличии.
(Унаследован от ControlViewModelBase)
RearrangeSelf Выполняет перерисовку содержимого в зависимости от состояния объекта без учёта дочерних объектов.
(Унаследован от ControlViewModelBase)
RefreshRowFilteringAsync Обновляет список строк, которые отображаются на экране. Вызовите метод после установки фильтра FilterRowFunc для его применения ко всем строкам. В противном случае он применяется только при изменении коллекции или при перерисовке строк на экране. Может быть вызван не из потока UI.
SetBlockУстанавливает блок, в котором размещён элемент управления.
(Унаследован от ControlViewModelBase)
SetStateAsyncУстанавливает заданное состояние элемента управления.
(Переопределяет ControlViewModelBaseSetStateAsync(IControlState, CancellationToken))
ToStringReturns a string that represents the current object.
(Унаследован от Object)
UnloadAsync Выполняет выгрузку объекта. Если объект уже был выгружен, то повторная выгрузка не выполняется.
(Унаследован от SupportUnloadingViewModel)
UpdateAutoSizeFromRowLimit Обновляет режим автоопределения размера столбцов AutoSize. Метод может только установить свойство AutoSize равным false.
UpdateColumnsAsync Отправляет асинхронное уведомление о том, что список колонок Columns был изменён. Такое уведомление перенаправляется в поток UI, если текущий поток отличается от него.

События

LayoutInvalidationRequested Событие, выполняемое при необходимости пересчитать размеры колонок в таблице. Используется системой, не рекомендуется добавлять обработчики для этого события.
PropertyChangedСобытие, уведомляющее об изменении свойства с определённым именем у модели представления.
(Унаследован от NotificationObject)
RowAdding Событие, возникающее перед вставкой новой строки в таблицу.
RowEditorClosed Событие, происходящее при закрытии редактора для строки таблицы, который может быть открыт при создании строки или при открытии существующей строки. Событие вызывается как при закрытии с сохранением строки, так и при отмене. Обработчик события обычно удаляет подписки, добавленные в RowInitializing. Через аргументы этого события нельзя отменить закрытие строки, для этого используйте событие RowEditorClosing.
RowEditorClosing Событие, происходящее при закрытии редактора для строки таблицы, который может быть открыт при создании строки или при открытии существующей строки. При создании строки событие вызывается только при сохранении строки (но не при отмене), причём проверка строки валидаторами вызываются после срабатывания события. Если свойство Cancel установлено равным true, то закрытие не будет выполнено.
RowInitializing Событие, происходящее при инициализации окна для строки таблицы, а именно при создании строки или при открытии существующей строки. Событие вызывается непосредственно перед тем, как окно будет открыто. Если свойство Cancel установлено равным true, то открытие окна будет отменено.
RowInvoked Событие, происходящее при выполнении действий со строкой таблицы, а именно при создании строки, открытии существующей строки и удалении строки. Если свойство Cancel установлено равным true, то действие будет отменено.
RowValidating Событие, происходящее при валидации строки перед сохранением или закрытием её окна редактирования. Если хотя бы один обработчик выбросит исключение, то оно будет считаться ошибкой валидации.
TabDeselected Событие, происходящее для объекта, который располагался на выбранной вкладке, после чего выбрали другую вкладку.
(Унаследован от ControlViewModelBase)
TabSelected Событие, происходящее при переходе объекта на выбранную вкладку. Событие для выбранной вкладки вызывается после того, как было вызвано событие TabDeselected для вкладки, которая перестала быть выбранной.
(Унаследован от ControlViewModelBase)
Unloaded Событие, возникающее после того, как объект был выгружен и уже не может использоваться в UI. Если на некоторые свойства объекта, связанные с UI, выполнялась подписка, то в обработчике события можно выполнить отписку, а также удалить сам обработчик.
(Унаследован от SupportUnloadingViewModel)

Поля

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

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

Get
(Определяется ComHelper)
InternalMarkerCanvas Возвращает маркер аннотации
(Определяется AnnotationInternalsAccessor)
Invoke
(Определяется ComHelper)
Set
(Определяется ComHelper)

См. также