如何在SilverLight DataGrid中使用LoadingRowGroup

时间:2010-01-29 14:29:16

标签: silverlight datagrid events

我想在SilverLight DataGrid中使用LoadingRowGroup事件来显示组摘要。

我有一个活动:

void dataGrid1_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{                        
    // e.RowGroupHeader
}

但我不知道如何使用e.RowGroupHeader来设置组头值。也许我应该使用e.RowGroupHeader.Template,但我不知道如何通过代码设置模板。

1 个答案:

答案 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)方式更好。但是当你想以更动态的方式生成标题时,可以使用第一个。