Power Apps forms often become complex when they involve multiple data sources, conditional editing rules, reset logic, and SharePoint Integration components. Two functions that repeatedly cause confusion are:

1. What is Defaults()?

Defaults() returns a blank template record with all fields initialized according to the data source.

We can use Defaults() when:

Defaults(DataSourceName)

This initializes an empty Feedback item with the correct schema.

1.1. Defaults() in Edit Forms

When you set a form’s Item property:

If(
    SharePointForm1.Mode = FormMode.New,
    Defaults(Feedback),
    SharePointIntegration.Selected
)

This ensures:

2. What is Parent.Default?

Parent.Default represents the value coming from the form (the parent control) to the control.

For example, for a TextInput inside a Form:

Default = Parent.Default

Choice Column

DefaultSelectedItems = 
If(
    IsBlank(Parent.Default),
    Blank(),
    [ Parent.Default ]
)

Note: Why we get wrong values in choice column?

When switching between list items:

Why It Happens?

Because the control uses:

Example problematic scenario:

RadioInput.Default = Parent.Default

When item changes → Radio keeps old value (cached), unless Reset is triggered.

3. How to Force Controls to Refresh When Item Changes

To ensure controls reset every time the user selects a different SharePoint item:

3.1 Use a Reset Variable

Inside OnEdit / OnNew / OnView of SharePointIntegration:

Set(varResetControls, true);
Set(varResetControls, false);

Control’s Reset property:

Reset = varResetControls

3.2 Dynamic Default Logic

Example for radio button:

Default = 
If(
    SharePointForm1.Mode = FormMode.New,
    Blank(),
    Parent.Default
)

This ensures:

4. Correct Patterns for Choice & Boolean Fields

4.1 Choice Column (Radio/Dropdown)

Default for Dropdown

DefaultSelectedItems =
If(
    IsBlank(Parent.Default),
    Blank(),
    [ Parent.Default ]
)

Reset Behavior

Reset = varResetControls

DisplayMode Logic Example

DisplayMode =
If(
    SharePointForm1.Mode = FormMode.View,
    DisplayMode.View,
    DisplayMode.Edit
)

4.2 Yes/No (Boolean) Fields

Default = Parent.Default   // TRUE / FALSE
Reset = varResetControls

Conclusion

Why Parent.Default is Gold for Editable Forms?

Parent.Default will always respect:

And it ensures the control is in sync with the form.