从创建列表中向列表框添加项目

时间:2019-03-24 15:09:37

标签: c#

data['text'] = data['text'].apply(first_k)

当我单击SaveDinosaur按钮时,我似乎无法保存用户输入,然后让我单击“显示所有恐龙”按钮,然后在列表框内显示。我想知道如何将保存的项目添加到带有foreach语句的列表框中。当我尝试其他任何方法时,它说它不起作用,因为它被另一个类方法中的get set方法所使用。

添加图片以供说明:

UI example

Code example

1 个答案:

答案 0 :(得分:2)

在这种情况下,我将使用BindingSource,因为它将正确更新“已连接”的控件。

public partial class MyForm : Form
{
    private List<Dino> _dinoList;
    BindingSource _bindingSource;

    public MyForm()
    {
        InitializeComponent();

        _dinoList = new List<Dino>();

        _bindingSource = new BindingSource();
        _bindingSource.DataSource = _dinoList;

        lbDinos.DisplayMember = nameof(Dino.Name);
        lbDinos.DataSource = _bindingSource;
    }

    private void btnAddData_Click(object sender, EventArgs e)
    {
        _dinoList.Add(new Dino(txtDinoName.Text));

        // Reload data
        _bindingSource.ResetBindings(false);

        // Select last inserted
        lbDinos.SelectedIndex = (lbDinos.Items.Count - 1);
    }
}

public class Dino
{
    public string Name { get; set; }

    public Dino(string name)
    {
        Name = name;
    }
}