有点急!!!wpf 有关datagrid的多行表头 列有合并 而且列是动态生成的 动态绑定

cyouhou 2015-04-02 01:58:29
本人刚开始学习写wpf项目,遇到棘手问题,如下:

数据库抽出的数据如下(datatable的内容)
考核 工种1 。。。。 工种S
日期 人员 天数 金额 。。。。 天数 金额
20150101 张三 2 500 1 1200
20150102 张三 2 500 1 1200
20150103 张三 2 500 1 1200





工种那块项目一样但是对应的字段名不一样。
datagrid如果复杂的话,有简单可以达到这个效果的控件吗?
求前后台代码的sample(xaml和C#),比较急,自己研究了几天,没有成果,郁闷!
...全文
759 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyouhou 2015-04-02
  • 打赏
  • 举报
回复
引用 6 楼 duanzi_peng 的回复:
[quote=引用 5 楼 cyouhou 的回复:] [quote=引用 2 楼 duanzi_peng 的回复:] 这个 可以重写 ColumnHeaderTemplate 模板来实现吧
第一列是这样,但是第二列开始是动态生成的,所以我想是不是可以在后台写不同的ColumnHeaderTemplate 模板,然后动态的绑给不同的列,这样可以吗?怎么实现呢?[/quote] 只要是用xaml写的模板,在后台都是可以用cs代码来写的。不过 这有点麻烦了。[/quote] 不知道能不能写个简单的例子给我呢?
exception92 2015-04-02
  • 打赏
  • 举报
回复
引用 5 楼 cyouhou 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:] 这个 可以重写 ColumnHeaderTemplate 模板来实现吧
第一列是这样,但是第二列开始是动态生成的,所以我想是不是可以在后台写不同的ColumnHeaderTemplate 模板,然后动态的绑给不同的列,这样可以吗?怎么实现呢?[/quote] 只要是用xaml写的模板,在后台都是可以用cs代码来写的。不过 这有点麻烦了。
cyouhou 2015-04-02
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
这个 可以重写 ColumnHeaderTemplate 模板来实现吧
第一列是这样,但是第二列开始是动态生成的,所以我想是不是可以在后台写不同的ColumnHeaderTemplate 模板,然后动态的绑给不同的列,这样可以吗?怎么实现呢?
exception92 2015-04-02
  • 打赏
  • 举报
回复
引用 3 楼 cyouhou 的回复:
怎么重写 ColumnHeaderTemplate 模板,能给个例子吗?
类似:

<DataGridTemplateColumn  Width="*">
                            <DataGridTemplateColumn.HeaderTemplate>
                                <DataTemplate>
                                    <Grid HorizontalAlignment="Stretch" Width="200">
                                        <Grid.RowDefinitions>
                                            <RowDefinition></RowDefinition>
                                            <RowDefinition></RowDefinition>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition></ColumnDefinition>
                                            <ColumnDefinition></ColumnDefinition>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock Text="考核" HorizontalAlignment="Center" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"></TextBlock>
                                        <TextBlock Text="日期" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="0"></TextBlock>
                                        <TextBlock Text="人员" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="1"></TextBlock>
                                    </Grid>
                                </DataTemplate>
                            </DataGridTemplateColumn.HeaderTemplate>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                     <!--显示的数据-->
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
自己再修改修改,不过显示的数据需要你的拼接出来。也就是 日期与人员 要由一个字段表示。
cyouhou 2015-04-02
  • 打赏
  • 举报
回复
怎么重写 ColumnHeaderTemplate 模板,能给个例子吗?
exception92 2015-04-02
  • 打赏
  • 举报
回复
这个 可以重写 ColumnHeaderTemplate 模板来实现吧
本拉灯 2015-04-02
  • 打赏
  • 举报
回复
找DEV控件包吧,就有你要的东西 了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧