.NET MAUI DataForm Commit Data
The values entered in the DataForm can be submitted to the underlying data object on three different occasions, using the CommitMode
property of the DataForm.
The next sections list all DataForm members related to commit data feature.
Commit modes
The selected mode is applied through CommitMode
(of typeTelerik.Maui.Controls.DataFormCommitMode
) property of the DataForm control. You could choose between three commit modes:
-
Explicit
—The changes are committed explicitly by invoking theCommitCommand
or calling theCommitChanges
method of the DataForm. -
LostFocus
—The changes are committed after the editor loses focus. -
PropertyChanged
—The changes in the editor are committed immediately on each property change (when the property value changes).
When
CommitMode
is set toLostFocus
, you have to setValidatonMode
toLostFocus
orExplicit
.
The CommitMode
can be applied globally to the RadDataForm
<telerik:RadDataForm x:Name="dataForm"
CommitMode="LostFocus"/>
Properties
-
HasPendingChanges
(bool
)—Gets a value indicating whether there are pending changes.
<Grid RowDefinitions="Auto,*,Auto">
<Grid.BindingContext>
<local:EditorsViewModel/>
</Grid.BindingContext>
<HorizontalStackLayout Grid.Row="0" Spacing="10">
<CheckBox IsChecked="{Binding HasPendingChanges, Source={x:Reference dataForm}}" VerticalOptions="Center" />
<Label Text="Pending changes" VerticalOptions="Center" />
</HorizontalStackLayout>
<telerik:RadDataForm x:Name="dataForm"
Grid.Row="1"
CommitMode="Explicit"/>
<HorizontalStackLayout Grid.Row="2">
<Button Text="Commit"
x:Name="commitNameButton"
Clicked="OnCommitClicked"/>
<Button Text="Cancel"
Clicked="OnCancelClicked"/>
</HorizontalStackLayout>
</Grid>
Manual Commit with Methods
DataForm exposes a CommitChanges
method with two overloads:
-
CommitChanges()
—Commits all pending changes in the RadDataForm to the underlying business object. This method is mostly useful when theCommitMode
is set toExplicit
. The method returnstrue
if the validation passes, otherwisefalse
.
this.dataForm.CommitChanges();
-
CommitChanges(string propertyName)
—Commit the pending changes in the editor for the specified property. This method is mostly useful when the DataFormCommitMode
property is set toExplicit
.True
if the validation passes,false
otherwise.
this.dataForm.CommitChanges(propertyName);
DataForm exposes a CancleChanges
method with two overloads:
-
CancelChanges
—Cancels all pending changes in the RadDataForm and reverts to the original values from the underlying business object. This method is mostly useful when theCommitMode
property is setExplicit
.
this.dataForm.CancelChanges();
-
CancelChanges(string propertyName)
—Cancels the pending changes in the editor for the specified property. This method is mostly useful when the DataFormCommitMode
property is set toExplicit
.
this.dataForm.CancelChanges(propertyName);
Commands
-
CommitCommand
(ICommand
)—Gets a command to a command to commit all pending changes in the RadDataForm. This command is mostly useful when the DataFormCommitMode
property is set toExplicit
. -
CancelCommand
(ICommand
)—Gets a command to cancel all pending changes in the RadDataForm. This command is mostly useful when the DataFormCommitMode
property is set toExplicit
.
All commit methods call validation first. If the property value passes validation, then the corresponding validation finished event is raised and the value is committed successfully.