悟道人生

渴望闲云野鹤的生活,面对自然,鸟鸣虫唱,星辰为伴,没有拘束,没有苦恼,有的只是神仙般的生活

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

简述:我在开发中有时候会遇到这样的问题,如:我有这样一张笔记本品牌表

分类ID

分类名称

1001

宏基

1002

联想

1003

华硕

1004

惠普

现在我需要把这些产品显示给用户,让用户做某种或多种选择,而我在用户做出选择之后,我需要获得的只是用户选择产品所对应的产品ID,客户并不知道他所选择的产品ID。在web开发方面似乎很多的列表控件都已经提供了很好的支持,如CheckBoxList, RadioButtonList, DropDownList等web控件都提供了两个属性(Value和Text),Value可以用户存放产品ID,Text可以存放产品名称,显示给用户。但是在Winform开发中,这样一些列表控件却不像Web中那么方便,如ComboBox和CheckedListBox列表控件,它们只提供了绑定一个object对象。我需要实现类似web的那个功能,我该怎么做呢?描述的有点郁闷,语言表述能力有待大大加强。下面来看举例说明:

  1. 首先定义一个笔记本品牌结构,用于存放笔记本品牌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:在这里利用绑定对象的话,就变得非常灵活了。

posted on 2010-04-30 14:59  凌风有约  阅读(606)  评论(0编辑  收藏  举报