Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Blazor 2-way binding inconsistency

$
0
0

It appears that when I pass a class as a two-way parameter, that if I replace/update the entire instance of the class that the two-way binding is not activated. The return event to update the source of the parameter is only executed when a property of the class is updated.

For example: my parent component has the following

<DataSourceDatabase @bind-DataSource="@DataSource"                    IsComponentDisabled="false"></DataSourceDatabase>

My child component has the following parameters set:

    partial class DataSourceDatabase    {        [Parameter] public DataSourceModel DataSource { get; set; } = new();        [Parameter] public EventCallback<DataSourceModel> DataSourceChanged { get; set; } 

I have a server method which will potentially change/set several attributes of the DataSource instance.

When I call that method and set the DataSource to the response this way, the two-way binding will not fire, meaning the instance of the DataSource in the parent component will not get updated:

var validateResponse = await PipelineServer.ValidateSource(request);if (validateResponse.Success){   DataSource = validateResponse.Data}

However, if I do the following, then the two-way binding will work and the instance in the parent component will get updated with the current value:

var validateResponse = await PipelineServer.ValidateSource(request);if (validateResponse.Success){   DataSource.DefaultSchema = validateResponse.Data.DefaultSchema;...}

My question is, am I missing something?

If not, I hope this helps others


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>