【问题标题】:How to use LoadingRowGroup in SilverLight DataGrid如何在 SilverLight DataGrid 中使用 LoadingRowGroup
【发布时间】:2011-01-10 21:00:24
【问题描述】:
我想在 SilverLight DataGrid 中使用 LoadingRowGroup 事件来显示组摘要。
我有一个活动:
void dataGrid1_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
// e.RowGroupHeader
}
但我不知道如何使用 e.RowGroupHeader 来设置组头值。也许我应该使用e.RowGroupHeader.Template,但我不知道如何通过代码设置模板。
【问题讨论】:
标签:
silverlight
datagrid
events
【解决方案1】:
由于没有人帮助我,我自己找到了解决方案:)
其实有两种方式:
1) 通过在 DataGrid 中使用 LoadingRowGroup 事件:
void dataGrid1_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
e.RowGroupHeader.Template = (ControlTemplate)System.Windows.Markup.XamlReader.Load(
@"<ControlTemplate xmlns=""http://schemas.microsoft.com/client/2007"">
<StackPanel Orientation=""Horizontal"" Background=""LightGray"">
<TextBlock Text=""Name of group: "" HorizontalAlignment=""Left""/>
<TextBlock Text=""{Binding Name}"" HorizontalAlignment=""Left""/>
</StackPanel>
</ControlTemplate>");
}
2)通过设置DataGridRowGroupHeader的Style:
<data:DataGrid.RowGroupHeaderStyles>
<Style TargetType="data:DataGridRowGroupHeader">
<Setter Property="SublevelIndent" Value="0" />
<Setter Property="Height" Value="30" />
<Setter Property="IsEnabled" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Horizontal" Background="LightGray">
<TextBlock Text="Name of group: " HorizontalAlignment="Left"/>
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGrid.RowGroupHeaderStyles>
(2) 方式更适合静态元素。但是当您想以更动态的方式生成标头时,可以使用第一个。