From ccc82e5a61b8e7d778e773fe76754fb6df484fe0 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 2 Sep 2024 14:08:43 +0300 Subject: [PATCH] DropDownDataGrid @bind-SelectedItem can cause endless loop in some cases --- Radzen.Blazor/RadzenDropDownDataGrid.razor.cs | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs b/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs index 2fbc6aa2eed..f86d2f2e1dc 100644 --- a/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs +++ b/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs @@ -555,21 +555,32 @@ protected override void SelectItemFromValue(object value) { if (!Multiple) { + bool raiseChange = false; + if (!string.IsNullOrEmpty(ValueProperty)) { var item = Query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"{ValueProperty} == @0", value).FirstOrDefault(); - if (item != null) + if (item != null && SelectedItem != item) { SelectedItem = item; + raiseChange = true; } } else { - SelectedItem = internalValue; + if (SelectedItem != internalValue) + { + SelectedItem = internalValue; + raiseChange = true; + } + } + + if (raiseChange) + { + SelectedItemChanged.InvokeAsync(SelectedItem); + selectedItems.Clear(); + selectedItems.Add(SelectedItem); } - SelectedItemChanged.InvokeAsync(SelectedItem); - selectedItems.Clear(); - selectedItems.Add(SelectedItem); } else {