当把一个bindingsource的datamenber和datasource指定后,会在该bindingsource的内部生成一个list,这个list其实是一个table,里面有列和行,与datasource的列和行完全一样。 现在要重新绑定这个bindingsource,但是datasource的列名会有变动,程序一直提示不能绑定,我想应该是没有去掉这个list里面所有列的原因,如何重新获得这个list使新的绑定顺利进行呢?

解决方案 »

  1.   

    不能绑定是 ui 元素引起的, 不是 BindingSource 的问题,比如你将 bindingsource 绑定到 DataGridView 上, 第二次绑定时, 如果没有清除列, datagridview 仍保留上次绑定留下的字段对应关系, 如果后来的数据没有某个字段了, 就报告那个错误.
    所以在重新绑定时, UI 元素上的绑定要保证一下, 比如对于 datagridview 可以 ,清空一下列, 或者再生成一下列-字段对应关系.