过去,用DataSet作为数据源,绑定2个以上控件的时候(控件跨窗体也可以),改变一个控件中的数据,例如删除一行,其他控件中的数据会跟随着一起变化,消失一行。
而现在我用新的List<t>作为数据源,却无法实现,这是怎么回事呢?我遇到的具体情况如下:比如,我实现一个UserInfo类,有LastName、FirstName这2个属性,再做一个
List<UserInfo> users = new List<UserInfo>();然后再界面上绑定一个ComboBox
comboBox1.dataSourse=Users;此时,显示是正常的N行数据
然后,在某段代码中,使用Users.add(new UserInfo("aa","aa"));添加一个对象到users中
如果按照DataSet的情况,则会自动添加了一个下拉框选项。但是List<UserInfo>却不会。然后,我用comboBox1.dataSourse=Users;再次绑定,以便加载新数据,但是依然无效请教这是为什么呢?

解决方案 »

  1.   

    确实是这样的~第一种方法是手动更新,DataSource=null;DataSource=users
    第二种方法是使用BindingSource,调用BindingSource.ResetBinding来更新
    强烈建议使用第二种方法~
      

  2.   

    Dataset你做绑定的时候可能内部有一个跟数据库同步的机制,另外说一点,假如你在asp.net项目中做的话,手写代码的方式你就必须得手动去databind.
    至于再次绑定为什么不行,加入你是asp.net项目的话,需要重新执行databind方法.
      

  3.   


    是WinForm
    ASP.Net没有ComboBox控件的,而且Asp>net也没有databind方法
      

  4.   

    使用BindingSource,调用BindingSource.ResetBinding来更新