DataGridViewComboBox单元格 - 为每个项目设置标记

时间:2013-03-11 10:05:01

标签: c# datagridview datagridviewcomboboxcell

如何为DataGridViewComboBox单元格中的每个元素设置标记

我的DataGridViewComboBox单元格包含以下项目:

string[] Fruits = {"Apple", "Orange","Mango"};
for (i=0;i<3;i++)
{
    DataGridViewComboBoxCellObject.Items.Add(Fruits[i]);
    //Set a seperate tag for this item
}

我想为Apple,Orange,Mango添加单独的标签

1 个答案:

答案 0 :(得分:0)

害怕你无法通过DataGridViewComboBoxCell来实现。

但是,如果你想保留一些关于添加到ComboBox集合的项目的单独信息,那么你可以创建自己的DataGridViewComboBoxCell元素类,并将这个类的实例作为列表添加到DataGridViewComboBoxCell

public class Fruit
{
    public String Name {get; set;}
    public Object Tag {get; set;} //change Object to YourType if using only one type

    public Fruit(String sInName, Object inTag)
    {
        this.Name=sInName;
        this.Tag=inTag;
    }
}

然后你可以将Fruit列表添加到DataGridViewComboBoxCell,但在你需要用你的信息创建Fruit之前

string[] Fruits = {"Apple", "Orange","Mango"};
for (i=0;i<3;i++)
{
    Object infoData; //Here use your type and your data
    //Create a element
    Fruit temp = New Fruit(Fruits[i], infoData);
    //Add to DataGridViewComboBoxCell
    DataGridViewComboBoxCell.Items.Add(temp);
}

在此之后,您可以将您的标记信息用作:

if (this.DataGridView.Rows[0].Cells[DataGridViewComboBoxCell.Name].Value != null)
{
    Fruit fruit = (fruit)this.DataGridView.Rows[0].Cells[DataGridViewComboBoxCell.Name].Value;
    Object tagValue = fruit.Tag;
}