日期:2014-05-18  浏览次数:20867 次

刚开始写winform,实在没有办法,求教,数据绑定问题
刚开始写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 的向上向下,第一条与最后一条都能正常使用,但是增加图标灰色不能用,修改也不起作用

------解决方案--------------------
绑定数据源的时候用DataSet||DataTable,应该就可以了
------解决方案--------------------
第一个问题应该是更新没有至数据源 第二个问题更新灰色不太明白 看属性里的enable属性吧
------解决方案--------------------
问题一: 
我在datagridview中手动添加了三列 城市ID 城市名 所属省份,但是程序运行后是得到的是几行空白的记录 
  
你手动添加的列要定义DataPropertyName属性才能进行绑定(你的数据源是:List<City>, 这里的DataPropertyName要与City中定义的属性对应)

问题二: 
当我删除第二行代码,并删除我在Datagridview建的列后能显示数据 ,bindingNavigator 的向上向下,第一条与最后一条都能正常使用,但是增加图标灰色不能用,修改也不起作用
a) 当你允许自动生成列时,会根据数据源的列自动生成,所以你这里能显示数据
b) WinForm中的添加\删除\修改, 最好用单独的Button, 不要做成了WEB的样式
------解决方案--------------------
dataGridView用DataSet做数据源.
至于列数可以在FormLoad里面根据数据源的列数来设置.
------解决方案--------------------
C# code

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

------解决方案--------------------
从你的问题来看,现在要解释清楚这一切是很困难的,建议你可以先阅读下面的链接,这是描述 Windows Forms 数据绑定的。在你看了这个链接以后,相信你会对 Windows Forms 绑定有一个比较深入的了解。

http://msdn.microsoft.com/zh-cn/library/ef2xyb33.aspx