New to Telerik UI for .NET MAUI? Start a free 30-day trial

.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.

RadDataForm Overview

The next sections list all DataForm members related to commit data feature.

Commit modes

The selected mode is applied through the CommitMode(of typeTelerik.Maui.Controls.DataFormCommitMode) property of the DataForm control. You can choose between the three commit modes:

  • Explicit—The changes are committed explicitly by invoking the CommitCommand or calling the CommitChanges 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 the selected CommitMode is LostFocus, you have to set ValidatonMode to LostFocus or Explicit.

The CommitMode can be applied globally to the RadDataForm

<telerik:RadDataForm x:Name="dataForm"
                     CommitMode="LostFocus"/>

Properties

  • HasPendingChanges(bool)—Gets a value indicating whether any changes are pending.
<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 useful when the CommitMode is Explicit. The method returns true if the validation passes, otherwise false.
this.dataForm.CommitChanges();
  • CommitChanges(string propertyName)—Commit the pending changes in the editor for the specified property. This method is useful when the DataForm CommitMode property is Explicit. 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 useful when the CommitMode property is Explicit.
this.dataForm.CancelChanges();
  • CancelChanges(string propertyName)—Cancels the pending changes in the editor for the specified property. This method is useful when the DataForm CommitMode property is Explicit.
this.dataForm.CancelChanges(propertyName);

Commands

  • CommitCommand(ICommand)—Gets a command to a command to commit all pending changes in the RadDataForm. This command is useful when the DataForm CommitMode property is Explicit.
  • CancelCommand(ICommand)—Gets a command to cancel all pending changes in the RadDataForm. This command is useful when the DataForm CommitMode property is Explicit.

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.

See Also

In this article