简述:我在开发中有时候会遇到这样的问题,如:我有这样一张笔记本品牌表
分类ID |
分类名称 |
1001 |
宏基 |
1002 |
联想 |
1003 |
华硕 |
1004 |
惠普 |
现在我需要把这些产品显示给用户,让用户做某种或多种选择,而我在用户做出选择之后,我需要获得的只是用户选择产品所对应的产品ID,客户并不知道他所选择的产品ID。在web开发方面似乎很多的列表控件都已经提供了很好的支持,如CheckBoxList, RadioButtonList, DropDownList等web控件都提供了两个属性(Value和Text),Value可以用户存放产品ID,Text可以存放产品名称,显示给用户。但是在Winform开发中,这样一些列表控件却不像Web中那么方便,如ComboBox和CheckedListBox列表控件,它们只提供了绑定一个object对象。我需要实现类似web的那个功能,我该怎么做呢?描述的有点郁闷,语言表述能力有待大大加强。下面来看举例说明:
- 首先定义一个笔记本品牌结构,用于存放笔记本品牌ID和品牌名称。
/// <summary>
/// 笔记本类型
/// </summary>
/// <typeparam>Value值类型</typeparam>
/// <typeparam>Text值类型</typeparam>
public struct ComputerType<T, K>
{
private T m_value;
/// <summary>
/// Value值
/// </summary>
public T Value
{
get { return m_value; }
set { m_value = value; }
}
private K m_text;
/// <summary>
/// Text值
/// </summary>
public K Text
{
get { return m_text; }
set { m_text = value; }
}
public override string ToString()
{
return m_text.ToString();
}
}
注意:需要重写该ToString()
2.在品牌表中绑定即可,代码如下:
ComputerType <int, string> computerType
foreach (string strType in typeArray)
{
computerType = new PacketType<int, string>();
computerType.Value = “品牌名称”;
computerType.Text = “品牌ID”
comboBox1.Items.Add(computerType);
}
PS:在这里利用绑定对象的话,就变得非常灵活了。