diff --git a/Radzen.Blazor/RadzenAccordion.razor.cs b/Radzen.Blazor/RadzenAccordion.razor.cs index dd02cd258..a940ebaeb 100644 --- a/Radzen.Blazor/RadzenAccordion.razor.cs +++ b/Radzen.Blazor/RadzenAccordion.razor.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; using Radzen.Blazor.Rendering; using System; @@ -151,6 +151,17 @@ namespace Radzen.Blazor StateHasChanged(); } + bool _itemRefreshPending; + + internal void ItemRefresh() + { + if (!_itemRefreshPending) + { + _itemRefreshPending = true; + StateHasChanged(); + } + } + /// /// Determines whether the specified index is selected. /// @@ -279,6 +290,8 @@ namespace Radzen.Blazor /// public override async Task SetParametersAsync(ParameterView parameters) { + _itemRefreshPending = false; + if (parameters.DidParameterChange(nameof(SelectedIndex), SelectedIndex)) { var item = items.Where(i => i.Visible).ElementAtOrDefault(parameters.GetValueOrDefault(nameof(SelectedIndex))); diff --git a/Radzen.Blazor/RadzenAccordionItem.cs b/Radzen.Blazor/RadzenAccordionItem.cs index 4fe5dfe86..8ca3a7c66 100644 --- a/Radzen.Blazor/RadzenAccordionItem.cs +++ b/Radzen.Blazor/RadzenAccordionItem.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components; using System; using System.Threading.Tasks; @@ -187,11 +187,21 @@ namespace Radzen.Blazor shouldRefresh = true; } + if (parameters.DidParameterChange(nameof(Text), Text) || + parameters.DidParameterChange(nameof(Icon), Icon) || + parameters.DidParameterChange(nameof(IconColor), IconColor) || + parameters.DidParameterChange(nameof(Disabled), Disabled) || + parameters.DidParameterChange(nameof(ChildContent), ChildContent) || + parameters.DidParameterChange(nameof(Template), Template)) + { + shouldRefresh = true; + } + await base.SetParametersAsync(parameters); if (shouldRefresh) { - Accordion?.Refresh(); + Accordion?.ItemRefresh(); } }