请教几个winform DataGridView的问题

z3280170537 2016-01-06 12:27:32
需要使用winform里的DataGridView控件,需要大概以下几点 :
* 从某处读入格式定义数据,有多少列,每列的列名、类型,等等,比如有5列,类型有int, string, float, bool等
还有读入若干行数据 ,比如100行,每行数据有一个key,比如int
* 自动生成 DataGridView的列,显示 数据
(通过设置DataSource, 这些已经完成了,不明白的是下面)

* 数据源头发生更新,(简单一些,列没有发生变化 ),就是多了或者少了10行数据,界面上要立刻更新。

尝试过 更新绑定的DataTable,但是界面 上没有更新,为什么?如何更新??
(虽然可以直接修改新DataGridView的每个cell里的值,
但用户排序某一列之后,程序就不知道更新的cell去了哪一行)

* 用户比如修改了某一个cell的值 , 能知道这个变化,进行相应的操作,把"变化的数据"提交出去(完成了一半,能获取变化,但还没有提交),
相应的cell背景色变化(这个也完成了一小部分),

因为用户可以 点击 表头 ,对某一列进行排序,排序之后,这个cell的背景色 就变成和其他cell一样了。
怎么解决???

谢谢指教 。
...全文
346 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maochengwen_orcle 2016-04-14
  • 打赏
  • 举报
回复
cell值对应的行总该有一个主键ID吧,根据id去查
ZoresseroZ 2016-01-11
  • 打赏
  • 举报
回复
基本不用上DataSource绑定的方式,我都是直接定义DataGridView的列属性的,数据源更改就刷新一次控件。。。。。
xdashewan 2016-01-06
  • 打赏
  • 举报
回复
你也可以放在cellformat事件里做
z3280170537 2016-01-06
  • 打赏
  • 举报
回复
如何判定"正确绑定DataTable"呢?? 第一次就放了一些数据进去,一切正常,显示得很好 ,没有任何问题。 用户可能排序若干次啊, 比如有一个cell背景设置成了红色,几次排序之后,我怎么能知道这个cell在哪一行呢?? 跟踪每一次排序操作,算出这个cell的新位置,然后绘制?? 太麻烦了吧…………
xdashewan 2016-01-06
  • 打赏
  • 举报
回复
如果你正确绑定DataTable那么修改DataTable的值应该是有变化的。重新排序后cell的颜色需要重新绘制,你可以在排序事件中重新绘制颜色

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧