Редактирование данных
Встроенные редакторы Eremex, используемые по умолчанию
Если вы явно не указываете встроенные редакторы для строк, контрол PropertyGrid использует специальные встроенные редакторы Eremex для отображения и редактирования значений строк распространенных типов данных:
- Логические значения —
CheckEditor
- Двойные значения —
SpinEditor
- Значения перечисления —
ComboBoxEditor
- Свойства с атрибутом
TypeConverter
, методTypeConverter.GetStandardValuesSupported
которого возвращаетtrue
—ComboBoxEditor
- Другие значения —
TextEditor
Вы можете динамически получать доступ к экземплярам встроенных редакторов Eremex и изменять их, когда эти редакторы активированы. Смотрите раздел Доступ к активному встроенному редактору Eremex для получения более подробной информации.
Назначение встроенных редакторов Eremex
Вы можете явно назначить строкам встроенные редакторы Eremex, если вам нужно переопределить дефолтное назначение редактора или настроить редакторы строк в XAML или code-behind.
Используйте свойство PropertyGridRow.EditorProperties
для этой цели следующим образом:
Создайте и настройте экземпляр вспомогательного класса
...EditorProperties
, который хранит свойства, специфичные для требуемого встроенного редактора. Все эти вспомогательные классы являются потомкамиBaseEditorProperties
:ButtonEditorProperties
— Содержит свойства, специфичные для контролаButtonEditor
.CheckEditorProperties
— Содержит свойства, специфичные для контролаCheckEditor
.ColorEditorProperties
— Содержит свойства, специфичные для контролаColorEditor
.ComboBoxEditorProperties
— Содержит свойства, специфичные для контролаComboBoxEditor
.HyperlinkEditorProperties
— Содержит свойства, специфичные для контролаHyperlinkEditor
.PopupColorEditorProperties
— Содержит свойства, специфичные для контролаPopupColorEditor
.PopupEditorProperties
— Содержит свойства, специфичные для контролаPopupEditor
.SegmentedEditorProperties
— Содержит свойства, специфичные для контролаSegmentedEditor
.SpinEditorProperties
— Содержит свойства, специфичные для контролаSpinEditor
.TextEditorProperties
— Содержит свойства, специфичные для контролаTextEditor
.
Установите для свойства
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
.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.