c#添加字符串列表到组合框,当项被删除时自动影响列表

本文关键字:列表 删除 影响 字符串 添加 组合 | 更新日期: 2023-09-27 18:15:23

我想将列表中的所有字符串添加到组合框中,当其中一个项目从ui中删除时,希望自动对列表产生影响(该列表也删除了那些选定的字符串)。

对于这类问题最好的技术是什么?

的例子:

List<string> users = new List<string>(){ "frsUser", "secUser", "thrUser", "fouUser" };
private void frmMain_Load(object sender, EventArgs e)
{
    foreach(var user in users)
        cmbUser.Items.Add(user);
}
private void btnRemove_Click(object sender, EventArgs e)
{
    cmbUser.Items.RemoveAt(cmbUser.SelectedIndex);
    // Should it be removed also here? 
    users.RemoveAt(cmbUser.SelectedIndex);
}

c#添加字符串列表到组合框,当项被删除时自动影响列表

这可以很容易地完成使用BindingSource来处理您的Combobox项目集合和列表之间的交互

private void frmMain_Load(object sender, EventArgs e)
{
    BindingSource bs = new BindingSource();
    bs.DataSource = users;
    c.DataSource = bs;
}

现在在按钮单击事件使用此代码

private void btnRemove_Click(object sender, EventArgs e)
{
    if(c.SelectedIndex == -1)
        return;
    BindingSource bs = c.DataSource as BindingSource;
    bs.RemoveAt(c.SelectedIndex);
    // Just to show the updated list 
    foreach(string u in users)
        Console.WriteLine(u);
}