使用blazor将用户输入的字符串添加到列表中

时间:2019-12-02 15:21:29

标签: c# blazor

我的任务是使用blazor将用户从表单输入的字符串添加到字符串列表中。据我所知,由于仅接受类型字符串,因此无法对列表进行绑定值。

由于我只能将一个值绑定到文本框,所以我无法将多个用户输入输入到列表中。

有没有一种方法,我可以将用户输入输入到列表中,然后再将更多用户输入到同一列表中,但仅使用分配给bind-Value参数的一个变量?

1 个答案:

答案 0 :(得分:0)

您需要从输入手动获取项目并将其添加到列表中。

一种实现此目的的方法是使用@onkeydown监听特定的Key事件。

在下面的示例中,每当用户按下Enter时,我们都会将在Input中键入的任何内容添加到列表中,然后清除输入,以便用户可以输入更多项。

@page "/"

<input @bind-value="UserInput" @bind-value:event="oninput" @onkeydown="CheckInput"></input>

<h2>My List</h2>

@foreach (var item in myList)
{
    <h3>@item</h3>
}

@code {

    private string UserInput { get; set; }
    public List<string> myList = new List<string> { "ItemOne" };

    private void CheckInput(KeyboardEventArgs keyEvent)
    {
        if(keyEvent.Key == "Enter")
        {
            AddToList(UserInput);
            UserInput = string.Empty;
        }

    }

    private void AddToList(string str)
    {
        myList.Add(str);
    }
}