天天看點

WPF DataGrid 多表頭

<Window.Resources>

<Style x:Key="CityNumStyle" TargetType="DataGridColumnHeader">

<Setter Property="Template">

<Setter.Value>

<ControlTemplate>

<Grid x:Name="Root">

<!--<Rectangle x:Name="BackgroundGradient" Fill="#eee" Stretch="Fill" Grid.ColumnSpan="2" />-->

<ContentPresenter Content="區号" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Center" />

</Grid>

</ControlTemplate>

</Setter.Value>

</Setter>

</Style>

<Style x:Key="CityNameStyle" TargetType="DataGridColumnHeader">

<Setter Property="Foreground" Value="#222" />

<Setter Property="HorizontalContentAlignment" Value="Left" />

<Setter Property="VerticalContentAlignment" Value="Center" />

<Setter Property="IsTabStop" Value="False" />

<Setter Property="SeparatorBrush" Value="#CCC" />

<Setter Property="Padding" Value="8" />

<Setter Property="Template">

<Setter.Value>

<ControlTemplate>

<Grid x:Name="Root">

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition Width="auto" />

</Grid.ColumnDefinitions>

<!--<Rectangle x:Name="BackgroundRectangle" Fill="#eee" Stretch="Fill" Grid.ColumnSpan="2" />-->

<Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">

<Grid.RowDefinitions>

<RowDefinition Height="20" />

<RowDefinition Height="1" />

<RowDefinition Height="20" />

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="100" />

<ColumnDefinition Width="1" />

<ColumnDefinition Width="100" />

</Grid.ColumnDefinitions>

<!--設定标題名稱-->

<ContentPresenter Content="省份城市" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.ColumnSpan="3" />

<!--設定間隔線-->

<Rectangle Fill="#ccc" VerticalAlignment="Stretch" Height="1" Visibility="Visible" Grid.Row="1" Grid.ColumnSpan="3" />

<ContentPresenter Content="省名" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Center" />

<Rectangle Fill="#ccc" VerticalAlignment="Stretch" Width="1" Visibility="Visible" Grid.Row="2" Grid.Column="1" />

<ContentPresenter Content="城市" Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" />

</Grid>

<Rectangle x:Name="VerticalSeparator" Fill="#ccc" VerticalAlignment="Stretch" Width="1" Visibility="Visible" Grid.Row="1" Grid.Column="1" />

</Grid>

</ControlTemplate>

</Setter.Value>

</Setter>

</Style>

</Window.Resources>

<Grid>

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Name="dataGrid1" VerticalAlignment="Stretch">

<DataGrid.Columns>

<DataGridTemplateColumn Header="sec" HeaderStyle="{StaticResource CityNameStyle}">

<DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<Label Content="{Binding AddrName}" Width="100" />

<Rectangle Fill="#000" VerticalAlignment="Stretch" Margin="0" Width="1" />

<Label Content="{Binding CityName}" Width="100" />

</StackPanel>

</DataTemplate>

</DataGridTemplateColumn.CellTemplate>

</DataGridTemplateColumn>

<DataGridTextColumn HeaderStyle="{StaticResource CityNumStyle}" Binding="{Binding TelNum}" Width="100" />

<DataGridTextColumn Header="統計" Binding="{Binding TotalSum}" Width="100" />

</DataGrid.Columns>

</DataGrid>

</Grid>

/// <summary>

/// MainWindow.xaml 的互動邏輯

/// </summary>

public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

this.dataGrid1.ItemsSource = CityInformation.GetInfo();

}

}

public class CityInformation

{

public string AddrName { get; set; }

public string CityName { get; set; }

public string TelNum { get; set; }

public double TotalSum { get; set; }

public static List<CityInformation> GetInfo()

{

return new List<CityInformation>() 

{

new CityInformation() { AddrName="四川", CityName = "成都", TelNum="123", TotalSum = 1.23 },

new CityInformation() { AddrName="廣東", CityName = "廣州", TelNum="234", TotalSum = 1.23 },

new CityInformation() { AddrName="廣西", CityName = "南甯", TelNum="0152", TotalSum = 1.23 },

new CityInformation() { AddrName="貴州", CityName = "貴陽", TelNum="0123", TotalSum = 1.23 },

new CityInformation() { AddrName="四川", CityName = "成都", TelNum="123", TotalSum = 10.23 }

};

}

}

文章來自:http://write.blog.csdn.net/postedit?ref=toolbar

繼續閱讀