打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
强大的DataGrid组件_自定义头模板(HeaderTemplate)

强大的DataGrid组件_自定义头模板(HeaderTemplate)

     具体步骤:

  1)在XAML文件中的UserControl标签中加入如下命名空间:

  xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"

  2)设置呈现头模板的样式HeaderStyle的属性

  3)可以利用StackPanel标签组合编排添加在头模板内的组件的位置。

  实例:

  通过实例来了解头模板制定的基本方法。

  先来看看效果:

             

 

  在代码中会指明操作的关键步骤。

  MainPage.xaml文件代码:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
    mc:Ignorable="d" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightClient.MainPage"
    d:DesignWidth="640" d:DesignHeight="320">
    <Grid x:Name="LayoutRoot" Width="640" Height="320" Background="White">
        <data:DataGrid x:Name="dgEmployee" AutoGenerateColumns="False" Margin="8,8,36,71" Background="#FFDEF2F0" FontSize="12">
            <data:DataGrid.Columns>
                <data:DataGridTemplateColumn Width="260">
                    <data:DataGridTemplateColumn.HeaderStyle>
                        <Style TargetType="dataprimitives:DataGridColumnHeader">
                            <Setter Property="ContentTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <!--呈现的关键-->
                                        <StackPanel Orientation="Vertical">
                                            <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="" Width="80"/>
                                                <TextBlock Text="   2009-07" Width="80"/>
                                                <TextBlock Text="" Width="100"/>
                                            </StackPanel>
                                           <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="单价" Width="80"/>
                                                <TextBlock Text="数量" Width="80"/>
                                                <TextBlock Text="总额" Width="100"/>
                                            </StackPanel>
                                        </StackPanel>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </data:DataGridTemplateColumn.HeaderStyle>
                    <!--这里用到了我上一篇中提到的方法-->
                    <data:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                          <StackPanel Orientation="Horizontal">                                                  
                            <TextBlock Width="80" Text="{Binding Quantity}"/>
                            <TextBlock Width="80" Text="{Binding Price}"/>
                            <TextBlock Width="100" Text="{Binding Total}"/>
                          </StackPanel>
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellTemplate>
                    <data:DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBox Width="80" Text="{Binding Quantity,Mode=TwoWay}"/>
                                <TextBox Width="80" Text="{Binding Price,Mode=TwoWay}"/>
                                <TextBox Width="100" Text="{Binding Total,Mode=TwoWay}"/>
                            </StackPanel>
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellEditingTemplate>
                </data:DataGridTemplateColumn>
            </data:DataGrid.Columns>
        </data:DataGrid>
    </Grid>
</UserControl>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)
你知道WPF与WinForms的区别吗?
WPF中的控件布局
LINQ to XML数据绑定
Material Design Object
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服