ComboBox 数据绑定技巧

ComboBox常用的绑定是绑定个DataSet给它。而绑定个IList给它呢,就有个技巧了。
如果你的Ilist是List<idictionary></idictionary>的,就不行了,ComboBox的DisplayMember, ValueMember需要从对象的property里获取值,而IDictionary的只是Key,所以不行。如果你想绑定IList 或 ArrayList的话,就得用一个实体类(Java或ORM里的概念)来作为数据的存放对象,然后把对象Add到列表里,然后就可以给DataSource赋值了。
定义一个类,有两个属性
public   class  ValueObject{
private   string  _name;
private   string  _value;
internal  Name
{
get  {  return  _value; }
set  { _value  =  value; }
}
}

然后,用一个
ArrayList list 
=   new  ArrayList();
for ( int  i = 0 ; i < 3 ; i ++ )
{
ValueObject vo 
=   new  ValueObject();
vo.Name 
=   " a " ;
vo.Value 
=   " 1 " ;
list.add(vo);
}

ComboBox cbb 
=   new  ComboBox();
cbb.DataSource 
=  list;
cbb.DisplayMember 
=   " Name " ;
cbb.ValueMember 
=   " Value " ;

这样就OK了,取值只要cbb.SelectedValue就取到了。
如果有做过java的话,这VO的作用就会很清楚的了。




另外,很多人不知道怎样根据读取的value来选定列表,其实用
ComboBox.SelectedValue = "xxx"就可以选定的了。
下面有个蠢方法,是我发现这个方法前使用的
IEnumerator enumer  =  ORG_TYPE_ID.Items.GetEnumerator();
            
int  i  =   0 ;
            enumer.Reset();
            
while  (enumer.MoveNext())
            
{
                DataRowView dt 
= (DataRowView)enumer.Current;
                
if (dt["ORG_TYPE_ID"].ToString().Equals(drv["ORG_TYPE_ID"].ToString()))
                
{
                    ORG_TYPE_ID.SelectedIndex 
= i;
                }

                i
++;
           }


电视机9号 2007-01-25 19:10 发表评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值