我的任务是使用blazor将用户从表单输入的字符串添加到字符串列表中。据我所知,由于仅接受类型字符串,因此无法对列表进行绑定值。
由于我只能将一个值绑定到文本框,所以我无法将多个用户输入输入到列表中。
有没有一种方法,我可以将用户输入输入到列表中,然后再将更多用户输入到同一列表中,但仅使用分配给bind-Value参数的一个变量?
答案 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);
}
}