找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou8

银牌会员

67

主题

191

帖子

2047

积分

银牌会员

积分
2047

活字格认证微信认证勋章元老葡萄

CanYou8
银牌会员   /  发表于:2015-11-30 15:32  /   查看:6517  /  回复:5
如下图所示,列表数据可自由展开、收起的效果(WPF平台):

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

本帖子中包含更多资源

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

x

5 个回复

倒序浏览
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
点击+,-号就可以进行展开,收起。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou8
银牌会员   /  发表于:2015-12-1 11:08:00
板凳
回复 2楼Alice的帖子

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

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

本帖子中包含更多资源

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

x
回复 使用道具 举报
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属性去设置整个表头的高度。
  1. _flex.ColumnHeaders.Rows[0].Height = 200;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou8
银牌会员   /  发表于:2015-12-1 14:03:00
5#
问题1:C1DataGrid与C1FlexGrid均可通过HeadersVisibility属性控制,我已经看到了效果,非常感谢!!!
问题2:C1FlexGrid我也是设置列Column中提供的Width属性,但在此处,第一列(“步骤”列)未达到预期效果(见3L 图片中红框2处);
问题3:点击按钮或右键,使列表数据全部展开、全部收缩的功能,C1FlexGrid有没有简洁的方法或接口事件,而不是像C1DataGrid的模拟扩展和收缩?
问题4:在C1FlexGrid中设置表头高度,必须用后台代码来做吗? 是否有类似于C1DataGrid中ColumnHeaderHeight这样的属性,简单设置即可?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-1 14:49:00
6#
回复 5楼CanYou8的帖子

1.ok。此问题关闭。
2.测试您的代码,不能重现Width无效的问题,推测有可能您的其他代码影响到。您可以将出问题的Demo发给我们,我们帮您调试。
3.提供就是随机安装示例中的方法,没有其他接口。
4.没有您提到的这样的属性。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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