Как использовать LoadingRowGroup в SilverLight DataGrid - PullRequest
0 голосов
/ 29 января 2010

Я хочу использовать событие LoadingRowGroup в SilverLight DataGrid для отображения сводной группы.

У меня есть событие:

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

но я не знаю, как использовать e.RowGroupHeader для установки значения заголовка группы. Возможно, мне следует использовать e.RowGroupHeader.Template, но я не знаю, как установить шаблон по коду.

1 Ответ

1 голос
/ 06 февраля 2010

Так как никто не помог мне, я сам нашел решение:)

На самом деле есть два пути:
1) с помощью события LoadingRowGroup в DataGrid:

 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) лучше для статических элементов. Но первый можно использовать, когда вы хотите генерировать заголовки более динамичным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...