CanYou8 发表于 2015-11-30 15:33:00

列表展开与收起效果

如下图所示,列表数据可自由展开、收起的效果(WPF平台):

C1DataGrid可否实现此种效果?数据如何绑定?

Alice 发表于 2015-11-30 16:29:00

回复 1楼CanYou8的帖子

谢谢您的反馈。
C1DataGrid有分组的概念,也提供了主子表(列表)的功能。

分组您可以根据某列分组,对该组进行展开,收起。
示例参考:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\Grouping\GroupSummary

您也可以参考:\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\Hierarchical\HierarchicalTasks
点击+,-号就可以进行展开,收起。

CanYou8 发表于 2015-12-1 11:08:00

回复 2楼Alice的帖子

感谢您的帮助!现在我用C1FlexGrid来实现此种效果了,但还有几个问题请教下:
1.如下图红框1处,如何不显示这列?C1DataGrid控件里面如何不显示这样的一列?
2.如下图红框2处,在此列设置宽度未起效果,如何缩小其列宽?

3.点击按钮或右键,使列表数据全部展开、全部收缩的功能,如何实现?
4.C1FlexGrid的表头高度如何设置呢?即表头单独设置高度,行高默认
    C1FlexGrid使用的代码如下:
      <c1:C1FlexGridAutoGenerateColumns="False" IsReadOnly="False"
                     Style="{StaticResource Green}" MinHeight="560"ItemsSource="{Binding ,IsAsync=True}"
                     SelectionMode="RowRange" ChildItemsPath="Children">
            <c1:C1FlexGrid.Columns>
                <c1:Column Header="步骤" Binding="{Binding StepNum}" Width="50" IsReadOnly="True"/>
                <c1:Column Header="生产部门" Binding="{Binding DepartmentName}" Width="60" IsReadOnly="True"/>
                <c1:Column Header="工序" Binding="{Binding ProcedureName}" Width="80" IsReadOnly="True"/>
                <c1:Column Header="参数名称" Binding="{Binding ParamName}" Width="80" IsReadOnly="True"/>
                <c1:Column Header="参数值" Binding="{Binding ParamValue}" Width="*"/>
                <c1:Column Header="附件" Binding="{Binding FileName}" Width="80" IsReadOnly="True"/>
            </c1:C1FlexGrid.Columns>
      </c1:C1FlexGrid>

Alice 发表于 2015-12-1 12:40:00

回复 3楼CanYou8的帖子

谢谢反馈。
通过您的描述,我不太理解您是想知道C1DataGrid的接口,还是C1FlexGrid的接口?
1.C1DataGrid是通过HeadersVisibility属性控制的,改成Column即可。
2.C1DataGrid的列Column中提供了Width属性可以控制列宽。
3.C1DataGrid其实就是模拟扩展和收缩功能,采用的是设置行Row的Visibility属性来实现。
具体您需要按钮或是右键,需要自定义逻辑,比如在相关事件里来改变Visibility属性。
您可以参考2楼的随机安装示例。

4.对于C1FlexGrid,可以通过Height属性去设置整个表头的高度。
_flex.ColumnHeaders.Rows.Height = 200;

CanYou8 发表于 2015-12-1 14:03:00

问题1:C1DataGrid与C1FlexGrid均可通过HeadersVisibility属性控制,我已经看到了效果,非常感谢!!!
问题2:C1FlexGrid我也是设置列Column中提供的Width属性,但在此处,第一列(“步骤”列)未达到预期效果(见3L 图片中红框2处);
问题3:点击按钮或右键,使列表数据全部展开、全部收缩的功能,C1FlexGrid有没有简洁的方法或接口事件,而不是像C1DataGrid的模拟扩展和收缩?
问题4:在C1FlexGrid中设置表头高度,必须用后台代码来做吗? 是否有类似于C1DataGrid中ColumnHeaderHeight这样的属性,简单设置即可?

Alice 发表于 2015-12-1 14:49:00

回复 5楼CanYou8的帖子

1.ok。此问题关闭。
2.测试您的代码,不能重现Width无效的问题,推测有可能您的其他代码影响到。您可以将出问题的Demo发给我们,我们帮您调试。
3.提供就是随机安装示例中的方法,没有其他接口。
4.没有您提到的这样的属性。
页: [1]
查看完整版本: 列表展开与收起效果