RadzenDropDown multiple in RadzenGridColumn

Hi, need help with data binding here. I see the drop down with the list of values but can't check any.

<RadzenGridColumn TItem="SimplifiedAuthEntity" Property="RolesList" Title="@LM.Get("webSettingsSaColumnRoles")">
<EditTemplate Context="order">
    <RadzenDropDown @bind-Value="order.RolesList" Data="@_authRolesList" Style="width:100%" Multiple="true"
                    AllowClear="true" Name="RolesName"/>
    <RadzenRequiredValidator Text="Value is required" Component="RolesName" Popup="true" />
</EditTemplate>
    [Required]
    public IEnumerable<string> RolesList { get; set; } = new List<string>();

    IEnumerable<string> _authRolesList;

It only work one single time if RolesList is null. Once I select the first value, the next click and list becomes irresponsive.

I've tried to use simple class for the list with the string property Name and set the TextProperty="Name" on the dropdown box but now I'm getting an error. Radzn.Blazor v2.18.6

IEnumerable<TestClass> _authRolesList;

    public class TestClass
    {
        public long Id { get; set; }
        public string Name { get; set; }
    }

<RadzenDropDown @bind-Value="order.RolesList" Data="@_authRolesList" Style="width: 100%" Multiple="true"
        AllowClear="true" Name="RolesName"  TextProperty="Name" ValueProperty="Name">
</RadzenDropDown>
warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
      Unhandled exception rendering component: Collection was modified; enumeration operation may not execute.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.CastIterator[TResult](IEnumerable source)+MoveNext()
   at Radzen.DropDownBase`1.SelectItemFromValue(Object value)
   at Radzen.DropDownBase`1.OnParametersSetAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.CallOnParametersSetAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.SetParametersAsync(ParameterView parameters)
   at Radzen.RadzenComponent.<>n__0(ParameterView parameters)
   at Radzen.RadzenComponent.SetParametersAsync(ParameterView parameters)
   at Radzen.DropDownBase`1.SetParametersAsync(ParameterView parameters)
   at Radzen.Blazor.RadzenDropDown`1.SetParametersAsync(ParameterView parameters)
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
      Unhandled exception in circuit 'jNxGKLA069-ja4BoOanzbQpo0PByd9GfKpdzLzcA-_0'.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.CastIterator[TResult](IEnumerable source)+MoveNext()
   at Radzen.DropDownBase`1.SelectItemFromValue(Object value)
   at Radzen.DropDownBase`1.OnParametersSetAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.CallOnParametersSetAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.SetParametersAsync(ParameterView parameters)
   at Radzen.RadzenComponent.<>n__0(ParameterView parameters)
   at Radzen.RadzenComponent.SetParametersAsync(ParameterView parameters)
   at Radzen.DropDownBase`1.SetParametersAsync(ParameterView parameters)
   at Radzen.Blazor.RadzenDropDown`1.SetParametersAsync(ParameterView parameters)
warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
      Unhandled exception rendering component: Cannot access a disposed object.
System.ObjectDisposedException: Cannot access a disposed object.
   at Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder`1.ThrowObjectDisposedException()
   at Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder`1.GrowBuffer(Int32 desiredCapacity)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendStepOut(DiffContext& diffContext)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ComputeDiff(Renderer renderer, RenderBatchBuilder batchBuilder, Int32 componentId, ArrayRange`1 oldTree, ArrayRange`1 newTree)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
      Unhandled exception in circuit 'jNxGKLA069-ja4BoOanzbQpo0PByd9GfKpdzLzcA-_0'.
System.ObjectDisposedException: Cannot access a disposed object.
   at Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder`1.ThrowObjectDisposedException()
   at Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder`1.GrowBuffer(Int32 desiredCapacity)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendStepOut(DiffContext& diffContext)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
   at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ComputeDiff(Renderer renderer, RenderBatchBuilder batchBuilder, Int32 componentId, ArrayRange`1 oldTree, ArrayRange`1 newTree)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()

You can try making the RoleList property IList. IEnumerable does not support adding and removing items. Check how this is done in our demo (DropDown with multiple selection).

Thanks, but the provided example also has IEnumerable. IEnumerable<string> multipleValues. If I change it to IList as suggested I get an error on value select.

warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
      Unhandled exception rendering component: Unable to cast object of type 'System.Linq.EnumerableQuery`1[System.String]' to type 'System.Collections.Generic.IList`1[System.String]'.
System.InvalidCastException: Unable to cast object of type 'System.Linq.EnumerableQuery`1[System.String]' to type 'System.Collections.Generic.IList`1[System.String]'.
   at Radzen.DropDownBase`1.SelectItem(Object item, Boolean raiseChange)
   at Radzen.Blazor.RadzenDropDown`1.OnSelectItem(Object item, Boolean isFromKey)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
      Unhandled exception in circuit '4AdO892EyfFeE9ShMo4_1HPUXLlAd2jMcQo-f8Nm1cA'.
System.InvalidCastException: Unable to cast object of type 'System.Linq.EnumerableQuery`1[System.String]' to type 'System.Collections.Generic.IList`1[System.String]'.
   at Radzen.DropDownBase`1.SelectItem(Object item, Boolean raiseChange)
   at Radzen.Blazor.RadzenDropDown`1.OnSelectItem(Object item, Boolean isFromKey)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)

We would need a reproduction in order to troubleshoot. You can try reproducing this issue with our online demo.

Thanks for pointing, I solved it. Was getting _authRolesList as IEnumerable due to the LINQ query, added ToList() and it finally worked!

But I assume it only works if _authRolesList items represents a class with properties and I have to set TextProperty="Name" ValueProperty="Name". Is it possible to bind to a simple string list? Had no luck with it yet.