Редактирование данных¶
Встроенные редакторы Eremex по умолчанию¶
Контролы TreeList и TreeView по дефолтному поведению используют встроенные редакторы Eremex для отображения и редактирования значений ячеек распространенных типов данных: Если вы явно не указываете редакторы ячеек, контролы TreeList и TreeView используют встроенные редакторы Eremex для отображения и редактирования значений ячеек распространенных типов данных:
- Логические значения —
CheckEditor
- Двойные значения —
SpinEditor
- Значения перечисления —
ComboBoxEditor
- Свойства с атрибутом
TypeConverter
, методTypeConverter.GetStandardValuesSupported
которого возвращаетtrue
—ComboBoxEditor
- Другие значения —
TextEditor
Вы можете явно указать редакторы ячеек для столбцов, чтобы переопределить дефолтное назначение редактора и настроить свойства встроенных редакторов. В следующих разделах приведены более подробные сведения о назначении редакторов.
Когда в ячейке начинается операция редактирования, вы можете получить доступ к активному встроенному редактору и изменить его. Смотрите раздел Доступ к активному встроенному редактору Eremex для получения дополнительной информации.
Назначьте встроенных редакторов Eremex¶
Контролы TreeList и TreeView позволяют вам явно назначать встроенные редакторы Eremex ячейкам (столбцам), чтобы переопределить дефолтное назначение редактора, или настраивать редакторы ячеек в XAML или code-behind. Используйте для этой цели следующие свойства:
- Контрол TreeView :
TreeViewControl.EditorProperties
Контрол TreeView отображает один столбец данных. Таким образом, свойство TreeViewControl.EditorProperties
определяет встроенный редактор, используемый для редактирования ячеек этого столбца.
- Контрол TreeList:
TreeListColumn.EditorProperties
Каждый столбец в контроле TreeList может иметь собственный встроенный редактор. Создайте столбец TreeList (объект TreeListColumn
) в коллекции TreeListControl.Columns
и установите редактор столбца, используя свойство TreeListColumn.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
. В режиме отображения (редактирование ячеек не активно) контрол TreeList/TreeView эмулирует SpinEditor
в ячейках целевого столбца, используя свойства объекта SpinEditorProperties
. Никакой реальный SpinEditor
не создается до тех пор, пока в ячейке не начнется операция редактирования. Когда пользователь запускает редактирование ячейки, контрол TreeList/TreeView создает реальный редактор SpinEditor
встроенным в выделенную ячейку. После завершения операции редактирования контрол уничтожает реальный SpinEditor
и начинает эмулировать SpinEditor
в этой ячейке. Смотрите Доступ к активному встроенному редактору Eremex , чтобы узнать, как получить доступ к реальному редактору ячеек.
Пример - Как использовать ButtonEditor в качестве встроенного редактора в столбце TreeList¶
Следующий код присваивает встроенному редактору ButtonEditor
столбец TreeList.
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
<mxtl:TreeListControl.Columns>
<mxtl:TreeListColumn Header="Name" FieldName="Name">
<mxtl:TreeListColumn.EditorProperties>
<mxe:ButtonEditorProperties>
<mxe:ButtonEditorProperties.Buttons>
<mxe:ButtonSettings Content="Clear"
Command="{Binding $parent[mxtl:CellControl].DataControl.
DataContext.ClearValueCommand}"/>
</mxe:ButtonEditorProperties.Buttons>
</mxe:ButtonEditorProperties>
</mxtl:TreeListColumn.EditorProperties>
</mxtl:TreeListColumn>
</mxtl:TreeListControl.Columns>
Пример - Как использовать ComboBoxEditor в качестве встроенного редактора в TreeView¶
Следующий код назначает встроенному редактору ComboBoxEditor
TreeView.
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
<mxtl:TreeViewControl.EditorProperties>
<mxe:ComboBoxEditorProperties ItemsSource="{Binding Families}"/>
</mxtl:TreeViewControl.EditorProperties>
Назначайте встроенные редакторы Eremex с помощью шаблонов¶
Контролы TreeList и TreeView позволяют использовать шаблоны для назначения редакторов Eremex столбцам. Используйте для этой цели следующие свойства:
TreeListColumn.CellTemplate
TreeViewControl.CellTemplate
Установите для свойства x:Name
значение "PART_Editor" для редактора Eremex, определенного в шаблоне. Это обеспечивает автоматическую привязку значения редактора (BaseEditor.EditorValue
) к полю столбца. Дополнительно,
свойствами внешнего вида редактора (видимость границ и цвет отображаемого текста на переднем плане в активном и неактивном состояниях) будет управлять контрол TreeList/TreeView.
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
...
<mxtl:TreeListColumn Header="Phone" FieldName="Phone">
<mxtl:TreeListColumn.CellTemplate>
<DataTemplate>
<mxe:ButtonEditor x:Name="PART_Editor">
<mxe:ButtonEditor.Buttons>
<mxe:ButtonSettings Content="..."/>
</mxe:ButtonEditor.Buttons>
</mxe:ButtonEditor>
</DataTemplate>
</mxtl:TreeListColumn.CellTemplate>
</mxtl:TreeListColumn>
Пользовательские редакторы¶
Вы можете указать пользовательские редакторы для ячеек в контролах TreeList и TreeView, используя следующие подходы:
- Назначьте редактор непосредственно определенному столбцу.
- Динамически назначайте редакторы столбцам на основе типа данных нижележащего объекта столбца. Этот метод применим к контролу TreeList.
Смотрите раздел Пользовательские редакторы для получения дополнительной информации.
Получение и установка значений ячеек¶
Контролы TreeList и TreeView предоставляют следующий API для получения и установки значений ячеек:
TreeListControl.GetCellDisplayText
TreeListControl.GetCellValue
TreeListControl.SetCellValue
TreeViewControl.GetCellDisplayText
TreeViewControl.GetCellValue
TreeViewControl.SetCellValue
Доступ к активному встроенному редактору Eremex¶
- Свойство
ActiveEditor
— Возвращает активный встроенный редактор.
Когда встроенному редактору Eremex назначается столбец TreeList/TreeView (неявно или явно с использованием свойства и шаблонов EditorSettings
), контрол эмулирует указанный редактор встроенного редактора в ячейках этого столбца в режиме отображения (когда редактирование ячеек неактивно). На данный момент реального встроенного редактора не существует. Эмуляция редакторов ячеек в режиме отображения повышает производительность приложения.
Когда пользователь начинает редактировать ячейку, контрол создает реальный редактор встроенного текста. На данный момент вы можете использовать свойство ActiveEditor
контрола для доступа к реальному экземпляру редактора Eremex. Когда ячейка теряет фокус, реальный редактор уничтожается, а свойство ActiveEditor
возвращает значение null
.
- Событие
ShowingEditor
— позволяет получать уведомления о начале операций редактирования в ячейках строк. Вы можете безопасно получить доступ к свойствуActiveEditor
в обработчике событийShowingEditor
.
Показать редактор ячеек¶
- Метод
ShowEditor
— Активирует редактор ячеек в выделенной ячейке. - Событие
ShowingEditor
— позволяет предотвратить активацию редактора ячеек пользователями в определенных случаях. При обработке событияShowingEditor
установите для параметра событияCancel
значениеtrue
, чтобы отключить активацию редактора.
Закройте активный встроенный редактор¶
- Метод
CloseEditor
— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. -
Метод
HideEditor
— Закрывает редактор ячеек без сохранения каких-либо изменений. -
Событие
HiddenEditor
— срабатывает после закрытия активного редактора ячеек.
Сохраните изменения, внесенные в встроенном редакторе¶
- Метод
CloseEditor
— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. - Метод
PostEditor
— Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.