AccordionItem does not reflect changes on data-bound content

Fix #2464
This commit is contained in:
Vladimir Enchev
2026-03-04 14:31:27 +02:00
parent 4d4a7772e8
commit 16c88d8d90
2 changed files with 26 additions and 3 deletions

View File

@@ -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();
}
}
/// <summary>
/// Determines whether the specified index is selected.
/// </summary>
@@ -279,6 +290,8 @@ namespace Radzen.Blazor
/// <inheritdoc />
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<int>(nameof(SelectedIndex)));

View File

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