我想在SilverLight DataGrid中使用LoadingRowGroup事件来显示组摘要。
我有一个活动:
void dataGrid1_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
// e.RowGroupHeader
}
但我不知道如何使用e.RowGroupHeader来设置组头值。也许我应该使用e.RowGroupHeader.Template,但我不知道如何通过代码设置模板。
答案 0 :(得分: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)通过设置Style of DataGridRowGroupHeader:
<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)方式更好。但是当你想以更动态的方式生成标题时,可以使用第一个。