Редактирование данных¶
Встроенные редакторы Eremex по умолчанию¶
Дефолтное поведение контрола DataGrid заключается в использовании встроенных редакторов Eremex для отображения и редактирования значений ячеек распространенных типов данных.
В следующем списке показаны редакторы Eremex, связанные с распространенными типами данных:
- Логические значения —
CheckEditor
- Двойные значения —
SpinEditor
- Значения перечисления —
ComboBoxEditor
- Свойства с атрибутом
TypeConverter
, методTypeConverter.GetStandardValuesSupported
которого возвращаетtrue
—ComboBoxEditor
- Другие значения —
TextEditor
Вы можете явно указать редакторы ячеек для столбцов DataGrid, чтобы переопределить дефолтное назначение редактора и настроить свойства встроенных редакторов. В следующих разделах приведены более подробные сведения о назначении редакторов.
Когда в ячейке начинается операция редактирования, вы можете получить доступ к активному встроенному редактору и изменить его. Смотрите раздел Доступ к активному встроенному редактору Eremex для получения дополнительной информации.
Назначьте встроенных редакторов Eremex¶
Чтобы явно назначить встроенный редактор Eremex ячейкам (столбцам), используйте свойство GridColumn.EditorProperties
.
Вы можете присвоить свойству EditorProperties
следующие объекты, которые определяют тип встроенного редактора (все эти объекты являются потомками BaseEditorProperties
):
ButtonEditorProperties
— Содержит свойства, специфичные для контролаButtonEditor
.CheckEditorProperties
— Содержит свойства, специфичные для контролаCheckEditor
.ComboBoxEditorProperties
— Содержит свойства, специфичные для контролаComboBoxEditor
.DateEditorProperties
— Содержит свойства, специфичные для контролаDateEditor
.HyperlinkEditorProperties
— Содержит свойства, специфичные для контролаHyperlinkEditor
.MemoEditorProperties
— Содержит свойства, специфичные для контролаMemoEditor
.PopupColorEditorProperties
— Содержит свойства, специфичные для контролаPopupColorEditor
.SegmentedEditorProperties
— Содержит свойства, специфичные для контролаSegmentedEditor
.SpinEditorProperties
— Содержит свойства, специфичные для контролаSpinEditor
.TextEditorProperties
— Содержит свойства, специфичные для контролаTextEditor
.
Предположим, что вы присвоили свойству EditorProperties
значение объекта SpinEditorProperties
. В режиме отображения (редактирование ячеек не активно) контрол DataGrid эмулирует SpinEditor
в ячейках целевого столбца, используя свойства объекта SpinEditorProperties
. Никакой реальный SpinEditor
не создается до тех пор, пока в ячейке не начнется операция редактирования. Когда пользователь запускает редактирование ячейки, контрол DataGrid создает встроенный редактор SpinEditor
в выделенной ячейке. После завершения операции редактирования контрол уничтожает реальный SpinEditor
и начинает эмулировать SpinEditor
в этой ячейке. Смотрите Доступ к активному встроенному редактору Eremex , чтобы узнать, как получить доступ к реальному редактору ячеек.
Пример - Как использовать ButtonEditor в качестве встроенного редактора в столбце DataGrid¶
Следующий код присваивает встроенному редактору ButtonEditor
столбец DataGrid.
xmlns:mxdg="https://schemas.eremexcontrols.net/avalonia/datagrid"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
<mxdg:DataGridControl.Columns>
<mxdg:GridColumn Header="Name" FieldName="Name">
<mxdg:GridColumn.EditorProperties>
<mxe:ButtonEditorProperties>
<mxe:ButtonEditorProperties.Buttons>
<mxe:ButtonSettings Content="Clear"
Command="{Binding
$parent[mxdg:CellControl].DataControl.DataContext.ClearValueCommand}"/>
</mxe:ButtonEditorProperties.Buttons>
</mxe:ButtonEditorProperties>
</mxdg:GridColumn.EditorProperties>
</mxdg:GridColumn>
</mxdg:DataGridControl.Columns>
Назначайте встроенные редакторы Eremex с помощью шаблонов¶
Вы можете использовать шаблоны для назначения редакторов Eremex столбцам DataGrid. Используйте свойство GridColumn.CellTemplate
для этой цели.
Установите для свойства x:Name
значение "PART_Editor" для редактора Eremex, определенного в шаблоне. Это обеспечивает автоматическую привязку значения редактора (BaseEditor.EditorValue
) к полю столбца. Дополнительно,
свойствами внешнего вида редактора (видимость границ и цвет отображаемого текста на переднем плане в активном и неактивном состояниях) будет управлять контрол DataGrid.
xmlns:mxdg="https://schemas.eremexcontrols.net/avalonia/datagrid"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
...
<mxdg:GridColumn Header="Phone" FieldName="Phone">
<mxdg:GridColumn.CellTemplate>
<DataTemplate>
<mxe:ButtonEditor x:Name="PART_Editor">
<mxe:ButtonEditor.Buttons>
<mxe:ButtonSettings Content="..."/>
</mxe:ButtonEditor.Buttons>
</mxe:ButtonEditor>
</DataTemplate>
</mxdg:GridColumn.CellTemplate>
</mxdg:GridColumn>
Пользовательские редакторы¶
Вы можете указать пользовательские редакторы для столбцов DataGrid, используя следующие подходы:
- Назначьте редактор непосредственно определенному столбцу.
- Динамически назначайте редакторы столбцам на основе типа данных нижележащего объекта столбца.
Смотрите раздел Пользовательские редакторы для получения дополнительной информации.
Получение и установка значений ячеек¶
Используйте следующий API для получения и установки значений ячеек:
DataGridControl.GetCellValue
DataGridControl.SetCellValue
Доступ к активному встроенному редактору Eremex¶
- Свойство
ActiveEditor
— Возвращает активный встроенный редактор.
Когда встроенному редактору Eremex назначается столбец Data Grid (неявно или явно с использованием свойства и шаблонов EditorSettings
), контрол эмулирует указанный редактор встроенного редактора в ячейках этого столбца в режиме отображения (когда редактирование ячеек неактивно). На данный момент реального встроенного редактора не существует. Эмуляция редакторов ячеек в режиме отображения повышает производительность приложения.
Когда пользователь начинает редактировать ячейку, контрол создает реальный редактор встроенного текста. На данный момент вы можете использовать свойство ActiveEditor
контрола для доступа к реальному экземпляру редактора Eremex. Когда ячейка теряет фокус, реальный редактор уничтожается, а свойство ActiveEditor
возвращает значение null
.
- Событие
ShowingEditor
— позволяет получать уведомления о начале операций редактирования в ячейках строк. Вы можете безопасно получить доступ к свойствуActiveEditor
в обработчике событийShowingEditor
.
Показать редактор ячеек¶
- Метод
ShowEditor
— Активирует редактор ячеек в выделенной ячейке. - Событие
ShowingEditor
— Позволяет предотвратить активацию редактора ячеек пользователями в определенных случаях. При обработке событияShowingEditor
установите для параметра событияCancel
значениеtrue
, чтобы отключить активацию редактора.
Закройте активный встроенный редактор¶
- Метод
CloseEditor
— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. -
Метод
HideEditor
— Закрывает редактор ячеек без сохранения каких-либо изменений. -
Событие
HiddenEditor
— срабатывает после закрытия активного редактора ячеек.
Сохраните изменения, внесенные в встроенном редакторе¶
- Метод
CloseEditor
— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. - Метод
PostEditor
— Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.