The aim of this arrangement is that the string key from the dictionary is displayed in the drop down while the List is displayed in a grid below the drop down. Note - the drop down does not have multiple selection enabled.
This used to work OK and display the Key value but in the changes between 3.20.3 and 3.20.4 this stopped working. I have done some investigation by building the Radzen source myself and the problem seems to be this commit:
...which was triggered by this discussion:
Perhaps copying the list contents into a new list creates a problem because the ref of the list changes?
I can work around this by changing the dictionaryOfLists variable to be Dictionary<string, IEnumerable> and aList to be IEnumerable but it involves casting it back to a List wherever it's used in my code
Not sure why you need reference to the IList however Blazor two-way binding will work by assigning the entire value not like ObservableCollection or similar.
So when the drop down is updated it updates "aList" via @bind-Value and then the data grid automatically updates. With this set up I have a single data structure (ie the Dictionary<string, List>) driving both the drop down and the detail grid.
I could achieve the same thing in a more simple way perhaps by changing the data source of the drop down to be a simple list of strings (the keys that are currently in the Dictionary) without any two-way binding. And then implement a Change event handler on the drop down that updates the DataGrid source. But wanted to point this out because it used to work and now doesn't. I wondered if the code change I referred to above was meant to only affect drop downs with Multiselect=true