WinForm 中ComboBox 绑定总结
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 1957


  1.DataTable

  用DataTable直接绑定,只需 要设置DataSource、DisplayMember、ValueMember三个属性即可。

   

  在使用时使用如下方式,即可取得相应 的ID和Name,这样就可以基本满足业务要求了。  

        

但如上的问题是,因为ComboBox绑定后默认显示第一项,但需要一项提示性选项,我没有找到什么好方法实现了。   

       上网看一些人用ComboBox.SelectedIndex = -1或设置ComboBox.Text或初始化设置ComboBox.Items一个项为初始项或设置ComboBox.DropDownStyle,但 我这里都没达到效果。   

 

本应实现效果A,但以上只能实现B效果,所以以上不符合要求。   

           1.jpg

                                           效果A     

 

          2.jpg

                                         效果B   

     2.ComboBox.Items.Add  

      一开始使用时,以为像Asp.net那样有ListItem属性可以使用,但Items只有几个特别简单的属性,还好Add(object item),所以就只能在object这里作文章了。所以就把要绑定的item新new 了一个对象,再重写ToString(),如是乎就可以了。   

        因为在整个页面中,有很多类似的ComboBox控件,所以就小小的抽象了一下,然后就可以便捷的实现效果B了。具体实现方式如下:

  

  实现抽象即可    

            

        //实现抽象   

       //类 DataBindControlsImplement 重 写 dataBindComboBox,并提供一个具体实现。   

      //由 于 DataBindControlsImplement 中没有了抽象成员,因此可以(但并非必须) 将 DataBindControlsImplement 声明为非抽象类。  

        

 //用如下这种方式就只有selectedText,而没有selectedValue   

    //comboBox.Items.Add(StringTools.ObjectToStr(dataRow[selectedText]).Trim());

    //可以存储在ComboBox中的任何种类的对象,而不是字符串。重写toString()方法生成的文本框将显示。   

    //这样就可以实现selectedText,selectedValue或更多需要的属性   

           

    ComboBox的绑定  

        

          ComboBox的获取  

        

  

 

本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。