子曰 发表于 2015-9-6 14:34:00

Datagrid分组


请问如何初始化时就将表中数据按病历号分组,并是子目录是隐藏状态?
还有怎么隐藏病历号左边这列。

Alice 发表于 2015-9-6 15:19:00

回复 1楼子曰的帖子

谢谢你的反馈。
1.你想隐藏的是rowheaer部分?
可以使用HeadersVisibility属性控制Column,Row的显示,如果只显示表头,就设置属性为Column。
2.将CanUserGroup="True",就可以进行分组。
分组请参考随机安装示例:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\Grouping\GroupSummary

子曰 发表于 2015-9-7 10:10:00

回复 2楼Alice的帖子

我想知道的是怎么通过后台代码实现分组,
设置CanUserGroup="True" 会出现一栏“拖拉一栏至此聚合”,这一栏我不太想要。

Alice 发表于 2015-9-7 10:37:00

回复 3楼子曰的帖子

谢谢反馈。
你可以通过GroupBy方法对指定列分组。
详细的使用方法可以参考我在2楼给出的示例。

子曰 发表于 2015-9-7 16:57:00

回复 4楼Alice的帖子



怎么实现如图中的group中的描述(财务部 4items)或者说能把这行隐藏掉,只有一个扩展按钮?
扩展的按钮太小,可否让其点击这行就能扩展?

Alice 发表于 2015-9-7 18:38:00

回复 5楼子曰的帖子

1.很抱歉不能。
2.DataGrid.Rows下有Expand/ExpandAll/CollapseAll/Collapse方法可以直接控制展开和缩放,你可以调用方法实现。

子曰 发表于 2015-9-7 19:38:00

回复 6楼Alice的帖子
C1DataGrid.Rows.Expand(Predicate<DataGridGroupRow> predicate)中应该怎样传参数?
我只想要这行空着,什么都不显示可以吗?

Alice 发表于 2015-9-8 11:17:00

回复 7楼子曰的帖子

谢谢反馈。
你说的是将GroupContent的内容设置为空么?你可以自定义GroupHeader。
代码参考:
            grid.LoadedRowPresenter += (s, e) =&gt;
            {
                if (e.Row.Type == DataGridRowType.Group)
                {
                  var gp = (e.Row.Presenter as DataGridGroupRowPresenter);
                  //var sp = new StackPanel() { Orientation = Orientation.Horizontal };
                  //sp.Children.Add(new TextBlock() { Text = &quot;Some custom content&quot; });
                  gp.GroupContent = null;
                  //gp.GroupContent = sp;   //set custom content
                }
            };

Expand方法的参考文档:
http://helpcentral.componentone.com/nethelp/C1datagridWPF/#C1.WPF.DataGrid.4~C1.WPF.DataGrid.DataGridRowCollection~Expand.html

Predicate的使用方法请参考msdn:
http://www.baidu.com/link?url=Y8DYrrQwJoYTbnPETrfMIIdwVnvgV6fpC8JzooQSc2jXJaEC_z_DPl7szkFDeXXMkuOlDLwtI1yqDr9_MrDHK_&amp;wd=&amp;eqid=a83b681d000034310000000555ee530a
页: [1]
查看完整版本: Datagrid分组