为什么我的列表框不显示多个项目?

时间:2018-06-20 20:45:32

标签: c#

这似乎很简单,我不确定为什么它不起作用。

我有一个按钮,单击该按钮可将一个项目添加到class:form的列表中。

public partial class Form1 : Form
{
    List<string> photoNames = new List<string>();


    private void button1_Click_1(object sender, EventArgs e)
    {
        //Hunce1947@superrito.com
        photoNames.Add("Ree");
        listBox1.DataSource = photoNames;
    }

但是,每当您单击该项目时,只会显示一个项目。为什么没有出现多个“ Ree”实例?

2 个答案:

答案 0 :(得分:0)

列表框未检测到数据源中的更改。因此将DataSource设置为null 首先,然后再次重新分配数据源。 这将为您工作。

List<string> photoNames = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
    photoNames.Add("Ree");
    listBox1.DataSource = null;
    listBox1.DataSource = photoNames;                
}

答案 1 :(得分:0)

我没有足够的声誉来评论,但是我相信photoNames是一个数据集,在那种情况下,我会说您创建一个数据表并添加行。

 DataSet photoNames = new DataSet();

 DataTable dt = new DataTable("photoName");
 dt.Columns.Add(new DataColumn("pname", typeof(string)));

 ds.Tables.Add(dt);

,然后代替

photoNames.Add("Ree");

您可以在该数据集的表中将ree添加为一行,并将其绑定到您的列表框,如下所示:

 DataRow dr = dt.NewRow();
 dr["photoName"] = "Ree";
 dt.Rows.Add(dr);
 listBox1.DataSource = photoNames;