silverlight前端,用style样式做了多表头样式,但是不满足条件的变化,需要更改样式。这时可以在后台切换样式。
一。
<Style x:Key="TBIStyle" TargetType="dgCloumn:DataGridColumnHeader">
</Style>
二。
<Style x:Key="HBIStyle" TargetType="dgCloumn:DataGridColumnHeader">
</Style>
<!--同比情况--><sdk:DataGridTemplateColumn x:Name="cl1" HeaderStyle="{StaticResource TBIStyle}" CanUserResize="False">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding [totalStorage]}" Width="50" />
<Rectangle Fill="#ccc" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="1" />
<TextBlock Text="{Binding [addArea]}" Width="80"/>
<Rectangle Fill="#ccc" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="1" />
<TextBlock Text="{Binding [addXuBian]}" Width="80"/>
<Rectangle Fill="#ccc" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="1" />
<TextBlock Text="{Binding [downArea]}" Width="80"/>
<Rectangle Fill="#ccc" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="1" />
<TextBlock Text="{Binding [downXuBian]}" Width="80"/>
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
红色字体此时切换两种样式,
则在后台写如何代码:
this.dataGrid1.Columns[2].HeaderStyle = Resources["HBIStyle"] as Style;
Columns[2]-----指此列在整个列表中是第几列(从0开始的哦!)