Blazor 中 RadzenDataList 中 RadzenTextBox 的 2 路绑定

Posted

技术标签:

【中文标题】Blazor 中 RadzenDataList 中 RadzenTextBox 的 2 路绑定【英文标题】:2 way binding on RadzenTextBox in a RadzenDataList in Blazor 【发布时间】:2020-06-12 13:28:01 【问题描述】:

使用文本框创建可编辑的项目列表。 所以iv'e使用了RadzenDataList,将它绑定到一个字符串列表。 然后我在模板中使用了RazenTextBox

<RadzenDataList Data="@_retrospectiveBoard.WhatWentWell"  TItem="string">
    <Template Context="item">
        <RadzenCard>
            <RadzenTextBox @bind-Value="@item"/>
        </RadzenCard>
    </Template>
</RadzenDataList>

RadzenCard 只是为了好看

但是,我得到了一个文本框列表,但是每当我将焦点更改为另一个文本框时,内容都会重置。 所以 2 路绑定没有按预期工作。

这甚至可能吗?我可以两种方式绑定到模板的上下文,还是必须拦截文本框事件并更新其中的数据?

【问题讨论】:

【参考方案1】:

当我反思这个问题时,我认为字符串可能不起作用,因为从技术上讲,字符串不能被修改,因为它是不可变的。 所以我已经将字符串包装到一个包含字符串的对象中,然后我们开始了!:

<RadzenDataList Data="@_retrospectiveBoard.WhatWentWell"  TItem="RetrospectiveDataItem">
    <Template Context="item">
        <RadzenTextBox @bind-Value="@item.Text"/>
    </Template>
</RadzenDataList>

【讨论】:

以上是关于Blazor 中 RadzenDataList 中 RadzenTextBox 的 2 路绑定的主要内容,如果未能解决你的问题,请参考以下文章

在新选项卡中打开 PDF - Blazor

如何在 Blazor 中使用 TagHelpers?

Blazor:在 Razor 文件中定义命名空间

如何从服务器端 Blazor 应用程序中的 Blazor 组件调用 razor 页面而不导致页面刷新

在 Blazor 组件中获取当前用户

为啥“InvokeAsync”在 Blazor 组件中显示为错误?