2010-01-29 41 views
0

我想在SilverLight DataGrid中使用LoadingRowGroup事件來顯示組摘要。如何在SilverLight DataGrid中使用LoadingRowGroup

我有一個事件:

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

,但我不知道如何使用e.RowGroupHeader設置組頭值。也許我應該使用e.RowGroupHeader.Template,但我不知道如何通過代碼設置模板。

回答

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的風格:

<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)的方式爲靜態元素更好。但是當您想以更動態的方式生成標題時,可以使用第一個標題。