找回密码
 立即注册

QQ登录

只需一步,快速开始

安心海叶

中级会员

66

主题

255

帖子

717

积分

中级会员

积分
717

活字格认证微信认证勋章

安心海叶
中级会员   /  发表于:2015-11-13 16:20  /   查看:8170  /  回复:10
您好!

我现在在关于DataGrid遇到了同样的问题。




首先在保存C1DataGrid时,如上图所示,会过滤到添加的c1:C1DataGrid.Columns列信息?

其次,我保存为xml后,再次打开,总是报错,显示CurrentCell为NULL,为什么总会出现CurrentCell为null或者CurrentRow为null的问题?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

10 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-11-13 17:31:00
沙发
回复 1楼安心海叶的帖子

谢谢您的反馈。
问题已经收到了,和之前的C1Chart的问题感觉类似。
我们测试后给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-11-13 17:34:00
板凳
回复 2楼Alice的帖子

好的,非常感谢~
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-13 18:09:00
地板
回复 3楼安心海叶的帖子

这个问题有意思,看了你的两个帖子,都是想把控件设计与xml互相转化,其中用到的XamlWriter.Save方法,但是这个使用是有限制的,可以参考:https://msdn.microsoft.com/zh-cn/library/ms754193(v=vs.110).aspx

观察C1DataGrid里面的属性:
  1. public DataGridColumnCollection Columns
  2. {
  3.         get
  4.         {
  5.                 return this.Model.Columns;
  6.         }
  7. }
复制代码
  1. public DataGridCell CurrentCell
  2. {
  3.         get
  4.         {
  5.                 if (this.Model != null)
  6.                 {
  7.                         return this.Model.FocusAndEditingManager.CurrentCell;
  8.                 }
  9.                 return null;
  10.         }
  11.         set
  12.         {
  13.                 if (this.Model != null)
  14.                 {
  15.                         this.Model.SetCurrentCell(value);
  16.                 }
  17.         }
  18. }
复制代码

必须同时实现get和set方法才能被save保存到xml中,进行序列化和反序列化操作;很明显C1DataGrid里的Current属性是可以序列化和序列化,只可惜最后结果是{assembly:Null},而且反序列化不回来了,网上有人说只能序列化后手动删除该属性,才能反序列化回来;
其次,Columns属性是没法序列化和反序列化的,因为没有实现set属性,即时在Mode里Columns的Set方法也是private,同样不能序列化;

看来您只能自己手动操作序列化和反序列化保存xml了:~

评分

参与人数 1金币 +999 收起 理由
Alice + 999 奖励金币

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-17 09:41:00
5#
回复 3楼安心海叶的帖子

您可以参考4楼的回复。
如果有什么问题,可以和我们联系。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-11-17 10:05:00
6#
回复 4楼KNight的帖子

请问,我如何手动操作序列化和反序列化保存xml,对于DataGrid,我完全没有头绪...
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-17 14:05:00
7#
回复 6楼安心海叶的帖子

:-|这个我就是知其然不知其所以然了,@Alice 问一下Alice吧
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-11-17 14:15:00
8#
回复 7楼KNight的帖子

好的,谢谢~
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-17 17:49:00
9#
回复 8楼安心海叶的帖子

谢谢反馈。
根据上述来看,这不是C1DataGrid的问题,这是xml序列化的问题。
我们测试后再给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-19 09:28:00
10#
回复 8楼安心海叶的帖子

您好。
有关C1DataGrid的序列化问题,对于不支持序列化的属性,您可以参考如下帖子11楼的Demo进行序列化和反序列化。
这个Demo提供了一种思路,您可以采用这种方式,将所有C1控件中不支持序列化的属性,进行序列化和反序列化:
http://gcdn.gcpowertools.com.cn/showtopic-19406.html
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部