Telerik Blazor TreeList SelectedItemsChanged 异步

Telerik Blazor TreeList SelectedItemsChanged async

我有这个示例代码:https://blazorrepl.telerik.com/Qwumvklf39dvgfer21

在树列表中:

<TelerikTreeList Data="@Data"
                 IdField="EmployeeId"
                 ParentIdField="ReportsTo"
                 Pageable="false"
                 SelectionMode="@SelectionMode"
                 SelectedItems="@SelectedItems"
                 SelectedItemsChanged="@(async (IEnumerable<EmployeeDirectoryDto> itemsList) => await HandleSelectionChange(itemsList))"
                 Height="300px">
    <TreeListColumns>
        <TreeListCheckboxColumn SelectAll="@ShowSelectAll" SelectChildren="true"></TreeListCheckboxColumn>
        <TreeListColumn Field="FirstName" Title="First Name" Width="350px" Expandable="true"></TreeListColumn>
        <TreeListColumn Field="LastName" Title="Last Name"></TreeListColumn>
        <TreeListColumn Field="HireDate" Title="Hire Date" Width="200px"></TreeListColumn>
    </TreeListColumns>
</TelerikTreeList>

和处理程序:

    private async Task HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
    {
        await Task.Delay(2000);//Simulate http call
        SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
    }

场景:Select 复选框 select 所有项目。 结果:项目在内部得到 selected,但 UI 仍未显示任何项目 selected。

如果 async/await 被删除,那么它将按预期工作并且所有项目都得到 selected。 我添加了一个 Task.Delay 只是为了模拟在每次 selection 变化时发生的一些长 运行 http 调用。

我在这里错过了什么?

它不能异步工作,但我认为他们正在添加一个 OnRowClick 事件,该事件将在 3.1 中正常工作。

在此期间,您需要执行以下操作:

private void HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
{
    InvokeAsync(() => Task.Delay(2000));//Simulate http call
    SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
}