刚开始写winform,实在没办法,数据绑定方面与webform还是区别什大的我有一个类cityList 里有一个方法GetCity()返回一个list<city> ,里面还有增加 修改 删除 记录的方法;
我添加了一个datagridview ,一个bindingsource 一个bindingNavigator 三个控件
然后我这样写:    bindingSource1.DataSource = center.GetGroupList();
    dataGridView1.AutoGenerateColumns = false; //不自动生成列
    dataGridView1.DataSource = bindingSource1;
    bindingNavigator1.BindingSource = bindingSource1;问题一: 
      我在datagridview中手动添加了三列 城市ID  城市名 所属省份,但是程序运行后是得到的是几行空白的记录问题二:
    当我删除第二行代码,并删除我在Datagridview建的列后能显示数据 ,bindingNavigator 的向上向下,第一条与最后一条都能正常使用,但是增加图标灰色不能用,修改也不起作用

解决方案 »

  1.   

    绑定数据源的时候用DataSet||DataTable,应该就可以了
      

  2.   

    第一个问题应该是更新没有至数据源 第二个问题更新灰色不太明白 看属性里的enable属性吧
      

  3.   

    问题一: 
          我在datagridview中手动添加了三列 城市ID  城市名 所属省份,但是程序运行后是得到的是几行空白的记录 
      
    你手动添加的列要定义DataPropertyName属性才能进行绑定(你的数据源是:List<City>, 这里的DataPropertyName要与City中定义的属性对应)问题二: 
        当我删除第二行代码,并删除我在Datagridview建的列后能显示数据 ,bindingNavigator 的向上向下,第一条与最后一条都能正常使用,但是增加图标灰色不能用,修改也不起作用
       a) 当你允许自动生成列时,会根据数据源的列自动生成,所以你这里能显示数据
       b) WinForm中的添加\删除\修改, 最好用单独的Button, 不要做成了WEB的样式
      

  4.   

    dataGridView用DataSet做数据源.
    至于列数可以在FormLoad里面根据数据源的列数来设置.
      

  5.   


    GridView1.DataSource = 你得到的dataset;
                GridView1.DataBind();
      

  6.   

    从你的问题来看,现在要解释清楚这一切是很困难的,建议你可以先阅读下面的链接,这是描述 Windows Forms 数据绑定的。在你看了这个链接以后,相信你会对 Windows Forms 绑定有一个比较深入的了解。http://msdn.microsoft.com/zh-cn/library/ef2xyb33.aspx
      

  7.   

    谢谢楼上各位,但是bindingNavigator 控件的增加,修改,删除功能是只对dataset 的数据源有效吗?用list<>就无效吗?