Skip to content

Редактирование данных

Встроенные редакторы Eremex по умолчанию

Контролы TreeList и TreeView по дефолтному поведению используют встроенные редакторы Eremex для отображения и редактирования значений ячеек распространенных типов данных: Если вы явно не указываете редакторы ячеек, контролы TreeList и TreeView используют встроенные редакторы Eremex для отображения и редактирования значений ячеек распространенных типов данных:

  • Логические значения — CheckEditor
  • Двойные значения — SpinEditor
  • Значения перечисления — ComboBoxEditor
  • Свойства с атрибутом TypeConverter, метод TypeConverter.GetStandardValuesSupported которого возвращает trueComboBoxEditor
  • Другие значения — 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 — Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.



* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.