Table of Contents

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

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

Если вы явно не указываете встроенные редакторы для строк, контрол PropertyGrid использует специальные встроенные редакторы 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="clr-namespace:Eremex.AvaloniaUI.Controls.PropertyGrid;assembly=Eremex.Avalonia.Controls"
xmlns:mxe="clr-namespace:Eremex.AvaloniaUI.Controls.Editors;assembly=Eremex.Avalonia.Controls"

<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="clr-namespace:Eremex.AvaloniaUI.Controls.PropertyGrid;assembly=Eremex.Avalonia.Controls"
xmlns:mxe="clr-namespace:Eremex.AvaloniaUI.Controls.Editors;assembly=Eremex.Avalonia.Controls"
...
<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

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

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

Как отключить активацию редактора

Чтобы предотвратить активацию редактора ячеек в определенных случаях, вы можете обработать событие ShowingEditor и установить для параметра обработчика событий Cancel значение true.



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