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();
}
}