CanYou8 发表于 2016-3-31 11:43:41

WPF平台C1FlexGrid列表单元格合并问题

WPF平台,常规的C1FlexGrid列表单元格合并没有啥问题,采用随机示例里面的方式很简单就可以实现了。
但是,如果C1FlexGrid显示的内容含有父子级关系,再采用如下方式,合并“Name”列却没有了效果(已经设置了控件的 AllowMerging="All" ):
            _flexGrid.AllowMerging = AllowMerging.Cells;
            _flexGrid.Columns["Name"].AllowMerging = true;随机实例中含有父子级关系也有合并成功的例子,请问这个是如何做到的?


Alice 发表于 2016-3-31 15:11:08

很抱歉回复晚了。
示例路径:
\Documents\ComponentOne Samples\WPF\C1.WPF.FlexGrid\CS\FlexGridSamples\SelectionMode
它是通过如下代码实现的:
if (f != null)
            {
                var allowMerging = ((CheckBox)sender).IsChecked.Value;
                f.AllowMerging = allowMerging
                  ? AllowMerging.Cells
                  : AllowMerging.None;
                f.Columns["Country"].AllowMerging = allowMerging;
                f.Columns["First"].AllowMerging = allowMerging;
                f.Columns["Last"].AllowMerging = allowMerging;
            }

这是默认的合并行为。

如果有自己的合并逻辑,就需要自定义类继承IMergeManager 接口,然后实现自己的合并逻辑。

CanYou8 发表于 2016-3-31 16:55:02

本帖最后由 CanYou8 于 2016-3-31 16:57 编辑

示例中的代码我也看到了,按照这种方式做了尝试,然而并没有什么用,我的父子级关系列表还是合并不了。
自定义类继承IMergeManager 接口,实现自己的合并逻辑,能否提供点示例代码?比如合并某一列的内容

Alice 发表于 2016-3-31 17:42:55

CanYou8 发表于 2016-3-31 16:55
示例中的代码我也看到了,按照这种方式做了尝试,然而并没有什么用,我的父子级关系列表还是合并不了。
自 ...
----示例中的代码我也看到了,按照这种方式做了尝试,然而并没有什么用,我的父子级关系列表还是合并不了。
无法重现您提到的问题,您可以根据随机示例检查区别,如果依然有问题,还是需要一个重现问题的Demo,我帮您看看。

--自定义类继承IMergeManager 接口,实现自己的合并逻辑,能否提供点示例代码?比如合并某一列的内容
基本思路就是从IMergeManager继承,写一个自己的类,然后你可以写一个GetMergeRange方法,返回你需要合并的区域。
随机安装示例中有个自定义合并的例子,你可以参考:
\Documents\ComponentOne Samples\WPF\C1.WPF.FlexGrid\CS\CustomMerging\CustomMerging

页: [1]
查看完整版本: WPF平台C1FlexGrid列表单元格合并问题