C# 3.0 在datagridview中将Ilist值与Combobox绑定

C# 3.0 在datagridview中将Ilist值与Combobox绑定,c#-3.0,C# 3.0,我有一个要求,就像我有一个列表中的值列表一样。我需要在DataGridView中绑定一个组合框,并在组合框中添加值 private void btnBrowse_Click(object sender, EventArgs e) { dgvFiles.Rows.Clear(); dgvFiles.Columns.Clear(); dgvFiles.Columns.Add("FileName", "File Na

我有一个要求,就像我有一个列表中的值列表一样。我需要在DataGridView中绑定一个组合框,并在组合框中添加值

   private void btnBrowse_Click(object sender, EventArgs e)
    {
            dgvFiles.Rows.Clear();
            dgvFiles.Columns.Clear();
            dgvFiles.Columns.Add("FileName", "File Name");
            dgvFiles.Columns.Add("Size", "File Size");
            dgvFiles.Columns.Add("Extension", "Extension");
            dgvFiles.Columns.Add("Non-OCR Pages", "Non-OCR Pages");
            dgvFiles.Columns.Add("OCR Pages", "OCR Pages");               
            dgvFiles.Columns.Add("Total Pages", "Total Pages");
            DataGridViewComboBoxColumn tb = new DataGridViewComboBoxColumn();
            dgvFiles.Columns.Add(tb);
            tb.Name = "Non-OCR PageNos";
            tb.HeaderText = "Non-OCR PageNos";
            DataGridViewComboBoxColumn tb1 = new DataGridViewComboBoxColumn();
            dgvFiles.Columns.Add(tb1);
            tb1.Name = "OCR PageNos";
            tb1.HeaderText = "OCR PageNos";
            string[] files = Directory.GetFiles(filepath, "*.pdf");
            //string[] templist = File.ReadAllLines("d:\\pdfcheck.txt");
            textBox1.Text = null;
            textBox2.Text = null;
            //StreamWriter OpStream = new StreamWriter("d:\\OCR_NonOCR_Report.csv");
            List<int> listNonOcr = new List<int>();
            List<int> listOcr = new List<int>();
           dgvFiles.Rows.Add(f.Name, f.Length, f.Extension, label4.Text.ToString(), label3.Text.ToString(),listNonOcr, listOcr, total.ToString();
   }
private void btnBrowse\u单击(对象发送者,事件参数)
{
dgvFiles.Rows.Clear();
dgvFiles.Columns.Clear();
添加(“文件名”、“文件名”);
dgvFiles.Columns.Add(“大小”、“文件大小”);
dgvFiles.Columns.Add(“扩展名”、“扩展名”);
dgvFiles.Columns.Add(“非OCR页面”、“非OCR页面”);
dgvFiles.Columns.Add(“OCR页面”、“OCR页面”);
dgvFiles.Columns.Add(“总页数”、“总页数”);
DataGridViewComboBoxColumn tb=新的DataGridViewComboxColumn();
dgvFiles.Columns.Add(tb);
tb.Name=“非OCR页面编号”;
tb.HeaderText=“非OCR页面编号”;
DataGridViewComboBoxColumn tb1=新DataGridViewComboxColumn();
dgvFiles.Columns.Add(tb1);
tb1.Name=“OCR页面号”;
tb1.HeaderText=“OCR页面编号”;
string[]files=Directory.GetFiles(filepath,*.pdf”);
//string[]templast=File.ReadAllLines(“d:\\pdfcheck.txt”);
textBox1.Text=null;
textBox2.Text=null;
//StreamWriter OpStream=新的StreamWriter(“d:\\OCR\u NonOCR\u Report.csv”);
List listNonOcr=新列表();
List listOcr=新列表();
dgvFiles.Rows.Add(f.Name、f.Length、f.Extension、label4.Text.ToString()、label3.Text.ToString()、listNonOcr、listOcr、total.ToString();
}

您可以这样做

public class SomeClass
{
  private string name;

  public SomeClass(string name)
  {
     this.name = name;
  }

  public string Name
  {
     get{return name;}
  }

  public object This
  {
     get{return this;}
   }
}

so that you  can specify:

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.ValueMember = "Name";
column.ValueMember = "This";
column.DataSource = new List<SomeClass>(new SomeClass[]{new
SomeClass("Fred")});
公共类SomeClass
{
私有字符串名称;
公共类(字符串名称)
{
this.name=名称;
}
公共字符串名
{
获取{返回名称;}
}
公众对此表示反对
{
获取{返回此;}
}
}
以便您可以指定:
DataGridViewComboBoxColumn=新DataGridViewComboxColumn();
column.ValueMember=“Name”;
column.ValueMember=“This”;
column.DataSource=new List(new SomeClass[]{new
SomeClass(“Fred”)};