找回密码
 立即注册

QQ登录

只需一步,快速开始

zongxudong
初级会员   /  发表于:2013-12-24 15:15  /   查看:6406  /  回复:4
Spread WPF Silverlight 的数据绑定, 很不完善呀. 之前我使用自定义的 ConnectionBase 来绑定数据. 目前看来. 数据源的数据更新太恼火了.  每次修改数据都需要调用 Sheet 的 ReloadBindingData() 方法来进行更新. 如果不是这样. 我发现有部分数据总是不能刷新.  grid.Invalidate(),  View.UpdateLayout() 等有关更新的方法都试用过了. 不知道内部是个什么更新机制. :-|

现在, 我想重新设计, 将数据源跟 Sheet 彻底分开, 数据源的改变通知 Sheet 来重新设置值, 而 Sheet 的改变又来设置回数据源. 不知道这样的设计是否合理. 我比较担心的有如下几个问题.

1. 数据源的改变需要频繁的调用 Sheet.SetValue 方法. 是否会有效率影响. 因为用户改动部分数据都会关联其他数据.
2. 设计是否过于复杂, 表面上看有点简单. 但是考虑深入, 比如列的移动, 行删除, 数据源的行新增, 数据验证. ... 这些工作好像都还比较大
3.

主要还是效率问题. 我的后台数据有可能很大.


希望, 指教
非常感谢

4 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-12-24 16:51:00
沙发
回复 1楼zongxudong的帖子

感谢您的问题反馈。

1.可以以单元格范围为单位进行刷新,Spread WPF-Silverlight 版本提供了IsValidRange方法用于单元格范围的刷新。
2.实际上当前的 ConnectionBase  也没有提供“列的移动, 行删除, 数据源的行新增”等功能,如果需要,都需要进行自定义。

有其他问题欢迎继续交流。

谢谢
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-12-24 17:01:00
板凳
最麻烦的就是使用了 ConnectionBase 后不能进行正常的, 单元格刷新. 刷新也不能重新在数据源里面获取数据.

提个问题  Sheet 里面有个 SetArray 方法, 是怎么用的? 是不是批量设置数据的时候, 效率会比较高?
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-12-24 17:25:00
地板
哦. 谢谢. 我已经看到文档了.
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-24 18:31:00
5#
回复 4楼zongxudong的帖子

奥,好的,感谢反馈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部