Пользовательский класс элемента списка и проблема DataGridView в приложении winform - PullRequest
0 голосов
/ 06 января 2012

я написал класс под названием элемент списка.я заполняю этот класс и добавляю в arraylist, а затем присваиваю arraylist свойству источника данных DataGridViewComboBoxColumn.

вот мой класс элементов списка

   public class ListItem
   {
    private string _FieldName = "";
    private string _FieldDesc = "";
    private string _TableName = "";

    public ListItem(string FieldName, string FieldDesc, string TableName)
    {
        this.FieldName = FieldName;
        this.FieldDesc = FieldDesc;
        this.TableName = TableName;
    }

    public string FieldName
    {
        get
        {
            return _FieldName;
        }
        set
        {
            _FieldName = value;
        }
    }

    public string FieldDesc
    {
        get
        {
            return _FieldDesc;
        }
        set
        {
            _FieldDesc = value;
        }
    }

    public string TableName
    {
        get
        {
            return _TableName;
        }
        set
        {
            _TableName = value;
        }
    }

    //public override string ToString()
    //{
    //    return this.name;
    //}
}

i, хотя можно было бы привести dgList.Rows[i]. Ячейки [0] в мой собственный класс listitem.

здесь я получаю сообщение об ошибке при попытке прочитать значение ячейки в цикле for.здесь я пытаюсь разыграть и прочитать значение.вот мой кодя пытаюсь прочитать значение ячейки для цикла при нажатии кнопки.вот код

 private void Form2_Load(object sender, EventArgs e)
    {
        ArrayList info = new ArrayList();
        info.Add(new ListItem("JID", "Job ID", "BBAJobs"));
        info.Add(new ListItem("AccountReference", "Customer ID", "BBAJobs"));
        info.Add(new ListItem("WID", "WID", "BBAJobs"));

        DataTable dg = new DataTable();
        dg.Columns.Add("data", typeof(string));
        DataRow drg = null;
        drg = dg.NewRow();
        drg[0] = "";
        dg.Rows.Add(drg);

        dgList.DataSource = dg;

        DataGridViewComboBoxColumn dgcoSpec = new DataGridViewComboBoxColumn();
        dgcoSpec.DataSource = info;
        dgcoSpec.DisplayMember = "FieldDesc";
        dgcoSpec.ValueMember = "FieldName";
        dgcoSpec.AutoComplete = true;
        dgcoSpec.HeaderText = "Fields";
        dgcoSpec.Name = "Fields";
        dgcoSpec.DefaultCellStyle.NullValue = "--Select--";
        dgcoSpec.Width = 115;
        dgList.Columns.Insert(0, dgcoSpec);

    }
 private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= dgList.Rows.Count - 1; i++)
        {
            ListItem lst= (ListItem) dgList.Rows[i].Cells[0];
            string x1 = lst.FieldName;
            string x2 = lst.FieldDesc;
            string x3 = lst.TableName;
        }
    }

скажите, пожалуйста, как это сделать с помощью фрагмента кода.

спасибо

...