找回密码
 立即注册

QQ登录

只需一步,快速开始

gsq0812

中级会员

2

主题

10

帖子

676

积分

中级会员

积分
676

活字格认证

最新发帖
gsq0812
中级会员   /  发表于:2014-4-25 11:37  /   查看:12393  /  回复:9
界面效果如下
想实现的功能
    当ModelID和SequenceID相同时,ModelName列中符合条件的单元格合并;
    通过IMergeManager接口实现单元格合并
出现的情况
    当通过AutoGenerateColumns属性生成列时,修改ModelID或者SequenceID,ModelName中的单元格会动态合并
    当通过Column.CellTemplate添加一个Textbox控件绑定相应数据时,修改ModelID或者SequenceID,并未按照料想的进行动态合并,
    (比方修改第一行ModelID列为2时,ModelName列单元格并没有分成两行,但是再将2修改为22时,ModelName列单元格自动分开,继续将单元格修改为1,ModelName列单元格并没有合并,继续修改为2,ModelName列竟然合并了)

请问这是什么原因?

本帖子中包含更多资源

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

x

9 个回复

倒序浏览
gsq0812
中级会员   /  发表于:2014-4-25 11:49:00
沙发
找到原因了,当同时添加CellTemplate和CellEditingTemplate并且CellTemplate为TextBlock时,显示结果就与自动生成列的情况一致了
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-25 11:58:00
板凳
又出现新的问题,直接修改后台数据时,比方修改第一行第一列对应的后台ModelID的值,通过INotifyPropertyChanged实现界面刷新后,ModelName列并没有分开。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-25 14:56:00
地板
回复 3楼gsq0812的帖子

从您的截图看,要求对第三列ModelName进行合并,第一、二列不需要合并。
1 简单的办法:  grid.Columns["ModelName"].AllowMerging = true;
   则有上下Cell有同样文字,自动合并。
2 自定义的办法: 实现IMergeManager接口
  

  1.    public interface IMergeManager
  2. {
  3.   CellRange GetMergedRange(
  4.     C1FlexGrid grid, CellType cellType, CellRange range);
  5. }
  6.   
复制代码

  http://helpcentral.componentone. ... nts/cellmerging.htm

方便的话,请上传一个demo,这样解决起来效率高一些。
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-25 15:28:00
5#

WPF FlexGrid合并单元格问题

回复 4楼roger.wang的帖子


文件已经上传,当点击那个button按钮时,第一行的ModelID和SequenceID同时修改为2(只有ModelID和SequenceID符合条件时才合并,所以通过ModelName列的AllowMerging属性不合适),但是ModelName列并没有分开显示成两行,还有FlexGrid如何设置Tab键的跳转单元格功能?谢谢。

本帖子中包含更多资源

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

x
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-25 16:00:00
6#
回复 5楼gsq0812的帖子

1 点击按钮后,修改完值后,刷新一下FlexGrid
   如,调用c1fg.Invalidate();

2 Tab键跳转,您的需求是什么?
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-25 16:08:00
7#
哦,谢谢,Tab键跳转,就是按Tab键时,自动跳转到同一行后面的那个单元格,或者下一行的第一个单元格,就像在Excel中选中某一个单元格后按Tab键一样,现在的情况是好像还是停留在原先的单元格中。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-25 16:15:00
8#
回复 7楼gsq0812的帖子

  1.            c1fg.KeyActionTab = KeyAction.MoveAcross;
复制代码
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-25 16:23:00
9#
回复 8楼roger.wang的帖子

好的,谢谢,但是使用Tab键后,我在Md列中输入的值并没有生效,而是直接回到原来的值;当我把绑定设置为UpdateSourceTrigger=PropertyChanged时,如果点击数据第二行ModelID列,输入2,单元格并不合并,而是等失去焦点或者继续输入其它值时,单元格才会拆分,我试了下不通过IMergeManager接口,直接通过简单的AllowMerging属性,直接修改TrackModel中的数据时,不需要刷新,单元格会自动合并和拆分(虽然不能满足要求),看来只能用Invalidate了,不过感觉wpf以数据驱动方式就不那么完美了。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-25 16:47:00
10#
回复 9楼gsq0812的帖子

问题解决了就好。 谢谢您的建议反馈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部