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 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 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 CommitMode is set to 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 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 the CommitMode is set to 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 mostly useful when the DataForm CommitMode property is set to 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 mostly useful when the CommitMode property is set Explicit.
this.dataForm.CancelChanges();
  • CancelChanges(string propertyName)—Cancels the pending changes in the editor for the specified property. This method is mostly useful when the DataForm CommitMode property is set to 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 mostly useful when the DataForm CommitMode property is set to Explicit.
  • CancelCommand(ICommand)—Gets a command to cancel all pending changes in the RadDataForm. This command is mostly useful when the DataForm CommitMode property is set to 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
Not finding the help you need?