Редактирование данных¶
Встроенные редакторы 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— Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.