Skip to content

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

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

Если вы явно не указываете встроенные редакторы для строк, контрол PropertyGrid использует встроенные редакторы Eremex для отображения и редактирования значений строк распространенных типов данных.

propertygrid-inplaceeditors

В следующем списке показаны редакторы Eremex, связанные с распространенными типами данных:

  • Логические значения — CheckEditor
  • Двойные значения — SpinEditor
  • Значения перечисления — ComboBoxEditor
  • Свойства с атрибутом TypeConverter, метод TypeConverter.GetStandardValuesSupported которого возвращает trueComboBoxEditor
  • Другие значения — TextEditor

Вы можете динамически получать доступ к экземплярам встроенных редакторов Eremex и изменять их, когда эти редакторы активированы. Смотрите раздел Доступ к активному встроенному редактору Eremex для получения более подробной информации.

Назначьте встроенных редакторов Eremex

Вы можете явно назначить строкам встроенные редакторы Eremex, если вам нужно переопределить дефолтное назначение редактора или настроить редакторы строк в XAML или code-behind.

Используйте свойство PropertyGridRow.EditorProperties для этой цели следующим образом:

  1. Создайте и настройте экземпляр вспомогательного класса ...EditorProperties, который хранит свойства, специфичные для требуемого встроенного редактора. Все эти вспомогательные классы являются потомками BaseEditorProperties:

    • ButtonEditorProperties — Содержит свойства, специфичные для контрола ButtonEditor.
    • CheckEditorProperties — Содержит свойства, специфичные для контрола CheckEditor.
    • ColorEditorProperties — Содержит свойства, специфичные для контрола ColorEditor.
    • ComboBoxEditorProperties — Содержит свойства, специфичные для контрола ComboBoxEditor.
    • HyperlinkEditorProperties — Содержит свойства, специфичные для контрола HyperlinkEditor.
    • PopupColorEditorProperties — Содержит свойства, специфичные для контрола PopupColorEditor.
    • PopupEditorProperties — Содержит свойства, специфичные для контрола PopupEditor.
    • SegmentedEditorProperties — Содержит свойства, специфичные для контрола SegmentedEditor.
    • SpinEditorProperties — Содержит свойства, специфичные для контрола SpinEditor.
    • TextEditorProperties — Содержит свойства, специфичные для контрола TextEditor.
  2. Задайте свойству PropertyGridRow.EditorProperties значение для созданного экземпляра ...EditorProperties.

xmlns:mxpg="https://schemas.eremexcontrols.net/avalonia/propertygrid"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"

<mxpg:PropertyGridRow FieldName="OrderNo">
    <mxpg:PropertyGridRow.EditorProperties >
        <mxe:ButtonEditorProperties TextWrapping="Wrap" />
    </mxpg:PropertyGridRow.EditorProperties>
</mxpg:PropertyGridRow>

Свойство PropertyGridRow.CellTemplate - это еще один способ назначить строке редактор Eremex. Убедитесь, что в редакторе Eremex для свойства x:Name установлено значение "PART_Editor". В этом случае PropertyGrid автоматически привязывает свойство редактора EditorValue к привязанному полю строки. Кроме того, PropertyGrid начинает поддерживать свойства внешнего вида встроенного редактора (видимость границ и цвет отображаемого текста в активном и неактивном состояниях).

xmlns:mxpg="https://schemas.eremexcontrols.net/avalonia/propertygrid"
xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"
...
<mxpg:PropertyGridRow FieldName="Caption">
    <mxpg:PropertyGridRow.CellTemplate>
        <DataTemplate>
            <mxe:ButtonEditor x:Name="PART_Editor">
                <mxe:ButtonEditor.Buttons>
                    <mxe:ButtonSettings Content="..."/>
                </mxe:ButtonEditor.Buttons>
            </mxe:ButtonEditor>
        </DataTemplate>
    </mxpg:PropertyGridRow.CellTemplate>
</mxpg:PropertyGridRow>

Пользовательские редакторы

PropertyGrid позволяет вам указывать пользовательские редакторы для ячеек строк. Вы можете назначить редактор непосредственно определенной строке или динамически назначать редакторы строкам на основе типа данных нижележащего объекта строки. Дополнительную информацию смотрите в следующем разделе: Пользовательские редакторы .

Доступ к активному встроенному редактору Eremex

  • Свойство ActiveEditor — Возвращает активный встроенный редактор.

Чтобы повысить производительность контрола, PropertyGrid использует облегченные версии встроенных редакторов Eremex при отображении значений ячеек в режиме отображения (когда редактирование текста не активно). Когда в ячейке начинается операция редактирования текста, встроенный редактор переключается со своей облегченной версии на полнофункциональную. В этом случае вы можете использовать свойство ActiveEditor для доступа к экземпляру редактора Eremex. Когда ячейка строки теряет фокус, редактор переключается обратно на свою облегченную версию, а свойство ActiveEditor возвращает значение null.

  • Событие ShowingEditor — позволяет получать уведомления о начале операций редактирования в ячейках строк. Вы можете безопасно получить доступ к свойству ActiveEditor в обработчике событий ShowingEditor.

Показать редактор ячеек

  • Метод ShowEditor — Активирует редактор ячеек в выделенной строке.
  • Событие ShowingEditor — позволяет предотвратить активацию редактора ячеек пользователями в определенных случаях. При обработке события ShowingEditor установите для параметра события Cancel значение true, чтобы отключить активацию редактора.

Закройте активный встроенный редактор

  • Метод CloseEditor — Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор.
  • Метод HideEditor — Закрывает редактор ячеек без сохранения каких-либо изменений.

  • Событие HiddenEditor — срабатывает после закрытия активного редактора ячеек.

Сохраните изменения, внесенные в встроенном редакторе

  • Метод CloseEditor — Сохраняет изменения, внесенные в редакторе ячеек, и закрывает редактор.
  • Метод PostEditor — Сохраняет изменения, внесенные в редакторе активных ячеек, не закрывая редактор.



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