Edit Modes
RadPropertyGrid exposes EditMode property of type PropertyGridEditMode, which provides different options for editing behavior.
Edit Modes
As to configuring RadPropertyGrid and assigning an Item to it, please check the Getting Started with RadPropertyGrid help article.
Default
The default option behaves similarly for both Flat and Hierarchical RenderMode. It utilizes much lighter UI, but also provides fewer options:
All PropertyGridFields editors are accessible from the UI and the correctness of an edit operation is ensured only by the data-binding mechanism.
There are not distinct visual states of PropertyGridField that indicate whether it is being currently edited, or not.
When a validation error occurs, users are not encouraged to fix it, or cancel their change, by blocking the UI.
Example 1: RadPropertyGrid with Default EditMode
<telerik:RadPropertyGrid RenderMode="Flat" EditMode="Default"/>
Figure 1: RadPropertyGrid with Default EditMode
Single
Single EditMode introduces the concept of editing properties one at a time. An editor is created only for the currently edited property. The other values are displayed in TextBlocks
It relies on PropertyDefinition’s Binding property. Setting this mode is not supported with dynamic data or when Property-Sets are defined.
Single EditMode is supported only when RenderMode is set to Flat. For more information on the different rendering modes, please check the Layout Rendering Modes article.
Example 2: RadPropertyGrid with EditMode set to Single
<telerik:RadPropertyGrid RenderMode="Flat" EditMode="Single"/>
Figure 2: RadPropertyGrid with Single EditMode
Events
The BeginningEdit and EditEnded events are raised only if the EditMode property is set to Single.
BeginEdit
BeginEditMethod has two overloads:
BeginEdit(): Starts an edit operation for the current PropertyDefinition.
BeginEdit(PropertyDefinition propertyDefinition): Starts an edit operation for the PropertyDefinition that is passed as a parameter.
If the edit operation is successfully initiated, RadPropertyGrid’s BeginningEdit event is raised . It is a cancellable event so one can prevent the edit operation there, in accordance to some custom logic:
Example 3: Canceling the edit as BeginningEdit event is raised
void RpgBeginningEdit(object sender, PropertyGridBeginningEditEventArgs e)
{
// Custom logic
e.Cancel = true;
}
Private Sub RpgBeginningEdit(sender As Object, e As PropertyGridBeginningEditEventArgs)
' Custom logic
e.Cancel = True
End Sub
Then PropertyGridField’s display content (TextBlock) is replaced by an editor.
Finishing Edit
There are two alternative options for finishing an edit operation:
CommitEdit: Tries to change the value of the bound property. First, it invokes the validation logic (raising the Validating, Validated events).
CancelEdit: Reverts the old value without validating the new ones.
Both operations result in raising of the EditEnded event, which indicates the executed operation and the Old and New value after it.
These edit actions are integrated with RadPropertyGrid’s Keyboard navigation (i.e. clicking on a display TextBlock triggers edit, pressing Esc cancels edit etc).