Редактирование данных¶
Встроенные редакторы 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.CellTemplateTreeViewControl.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.GetCellDisplayTextTreeListControl.GetCellValueTreeListControl.SetCellValueTreeViewControl.GetCellDisplayTextTreeViewControl.GetCellValueTreeViewControl.SetCellValue
Доступ к активному встроенному редактору Eremex¶
- Свойство
ActiveEditor— Возвращает активный встроенный редактор.
Когда встроенному редактору Eremex назначается столбец TreeList/TreeView (неявно или явно с использованием свойства и шаблонов EditorSettings), контрол эмулирует указанный редактор встроенного редактора в ячейках этого столбца в режиме отображения (когда редактирование ячеек неактивно). На данный момент реального встроенного редактора не существует. Эмуляция редакторов ячеек в режиме отображения повышает производительность приложения.
Когда пользователь начинает редактировать ячейку, контрол создает реальный редактор встроенного текста. На данный момент вы можете использовать свойство ActiveEditor контрола для доступа к реальному экземпляру редактора Eremex. Когда ячейка теряет фокус, реальный редактор уничтожается, а свойство ActiveEditor возвращает значение null.
- Событие
ShowingEditor— позволяет получать уведомления о начале операций редактирования в ячейках строк. Вы можете безопасно получить доступ к свойствуActiveEditorв обработчике событийShowingEditor.
Показать редактор ячеек¶
- Метод
ShowEditor— Активирует редактор ячеек в выделенной ячейке. - Событие
ShowingEditor— позволяет предотвратить активацию редактора ячеек пользователями в определенных случаях. При обработке событияShowingEditorустановите для параметра событияCancelзначениеtrue, чтобы отключить активацию редактора.
Закройте активный встроенный редактор¶
- Метод
CloseEditor— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. -
Метод
HideEditor— Закрывает редактор ячеек без сохранения каких-либо изменений. -
Событие
HiddenEditor— срабатывает после закрытия активного редактора ячеек.
Сохраните изменения, внесенные в встроенном редакторе¶
- Метод
CloseEditor— Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор. - Метод
PostEditor— Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.