如何在datagridview c#中显示arraylist内容?

时间:2017-06-10 10:38:43

标签: c#

这是一个包含受训者信息的结构

ArrayList ar = new ArrayList(); 

这个Arraylist是为每个新的实习生提供库存

private void button1_Click(object sender, EventArgs e)
{
  Stagaire stg = new Stagaire();
  stg.nom = textBox1.Text;
  stg.pre_nom = prenom.Text;
  stg.date = date.Text;
  stg.fillier = fill.Text;
  stg.num = Convert.ToInt32(num.Text);
  ar.Add(stg);
}

这是将Stagaire添加到Arraylist的代码

df['datetime'] = pd.to_datetime(df['YYYY-MO-DD'] + ' ' + df['HH-MI-SS_SSS'])

我如何在datagridview中显示任何Stagaire信息?

2 个答案:

答案 0 :(得分:2)

使用class代替struct 使用properties代替fields 使用公认的命名约定。

public class Stagaire
{
    public string Nom { get; set; }
    public string PreNom { get; set; }
    public string Date { get; set; }
    public string Fillier { get; set; }
    public int Num { get; set; }
}

使用强类型集合代替ArrayList 使用BindingList自动跟踪集合中的项目 给它一个合适的名字。

BindingList<Stagaire> stagaires = new BindingList<Stagaire>();

使用数据绑定而不是手动填充。

dataGridView.DataSource = stagaires;

由于数据绑定,DataGridView将自动更新。

private void AddButton_Click(object sender, EventArgs e)
{
    var stagaire = new Stagaire();
    // Here the code of filling properties

    stagaires.Add(stagaire);
}

此外,我会将Date属性类型更改为DateTime

public DateTime Date { get; set; }

并使用DateTimePicker作为日期输入。

stagaire.Date = dateTimePicker.Value;

答案 1 :(得分:0)

对于datagridview你必须添加一个新的stagaire并影响ar [i]到nes stagaire然后你必须添加一个新的stagaire infvery到datagridview

Stagaire sgt = new Stagaire();
        for (int i = 0; i < ar.Count; i++)

        {
            sgt = (Stagaire)ar[i];//ar[i] is an Object so you have to convert it (caste) to the Stagaire type 
            dataGridView1.Rows.Add(sgt.nom,sgt.pre_nom,sgt.date,sgt.num,sgt.fillier);

        }