GroupStyle Classe

Définition

Définit l’aspect souhaité pour le groupe à chaque niveau.Defines how you want the group to look at each level.

public ref class GroupStyle : System::ComponentModel::INotifyPropertyChanged
[System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)]
public class GroupStyle : System.ComponentModel.INotifyPropertyChanged
type GroupStyle = class
    interface INotifyPropertyChanged
Public Class GroupStyle
Implements INotifyPropertyChanged
Héritage
GroupStyle
Attributs
Implémente

Exemples

Les exemples suivants montrent un ItemsControl qui est lié à un XmlDataProvider et le contenu code-behind qui contient la logique permettant d’ajouter et de supprimer le regroupement.The following examples show an ItemsControl that is bound to an XmlDataProvider and the code-behind content that contains the logic to add and remove grouping. Lorsque la case à cocher est activée, le contenu ItemsControl de est regroupé Type par attribut.When the check box is checked, the content of the ItemsControl is grouped by the Type attribute.

Chaque groupe est de type CollectionViewGroup.Each group is of type CollectionViewGroup. Le GroupStyle TextBlock Name est spécifié afin qu’il apparaisse sous la forme d’un qui affiche le de chaque groupe. HeaderTemplateThe GroupStyle HeaderTemplate is specified so that it appears as a TextBlock that displays the Name of each the group. Dans ce cas, Name est soit Work ou Home.In this case, the Name is either Work or Home.

<Window x:Class="GroupingSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Grouping Sample"
    Width="220" Height="550">
  <StackPanel>

    <StackPanel.Resources>
      <XmlDataProvider x:Key="myTasks" XPath="Tasks/Task">
        <x:XData>
          <Tasks xmlns="">
            <Task Name="Groceries" Priority="2" Type="Home">
              <Description>Pick up Groceries and Detergent</Description>
            </Task>
            <Task Name="Laundry" Priority="2" Type="Home">
              <Description>Do Laundry</Description>
            </Task>
            <Task Name="Email" Priority="1" Type="Work">
              <Description>Email Clients</Description>
            </Task>
            <Task Name="Clean" Priority="3" Type="Work">
              <Description>Clean my office</Description>
            </Task>
            <Task Name="Dinner" Priority="1" Type="Home">
              <Description>Get ready for family reunion</Description>
            </Task>
            <Task Name="Proposals" Priority="2" Type="Work">
              <Description>Review new budget proposals</Description>
            </Task>
          </Tasks>
        </x:XData>
      </XmlDataProvider>
    </StackPanel.Resources>

    <TextBlock Margin="12,5,5,0" FontSize="20" Text="My Task List"/>
    <CheckBox Margin="10,5,5,10" Checked="AddGrouping"
              Unchecked="RemoveGrouping">Group by task type</CheckBox>
    <ItemsControl Margin="10" Name="myItemsControl"
                  ItemsSource="{Binding Source={StaticResource myTasks}}">
      <ItemsControl.ItemTemplate>
        <DataTemplate>
          <DataTemplate.Resources>
            <Style TargetType="TextBlock">
              <Setter Property="FontSize" Value="18"/>
              <Setter Property="HorizontalAlignment" Value="Center"/>
            </Style>
          </DataTemplate.Resources>
          <Grid>
            <Ellipse Fill="Silver"/>
            <StackPanel>
              <TextBlock Margin="3,3,3,0"
                         Text="{Binding XPath=@Name}"/>
              <TextBlock Margin="3,0,3,7"
                         Text="{Binding XPath=@Priority}"/>
            </StackPanel>
          </Grid>
        </DataTemplate>
      </ItemsControl.ItemTemplate>
      <ItemsControl.ItemContainerStyle>
        <Style>
          <Setter Property="Control.Width" Value="100"/>
          <Setter Property="Control.Margin" Value="5"/>
        </Style>
      </ItemsControl.ItemContainerStyle>
      <ItemsControl.GroupStyle>
        <GroupStyle>
          <GroupStyle.HeaderTemplate>
            <DataTemplate>
              <TextBlock FontWeight="Bold" FontSize="15"
                         Text="{Binding Path=Name}"/>
            </DataTemplate>
          </GroupStyle.HeaderTemplate>
        </GroupStyle>
      </ItemsControl.GroupStyle>
    </ItemsControl>
  </StackPanel>
</Window>
using System;
using System.Windows;
using System.Windows.Data;

namespace GroupingSample
{
    public partial class Window1 : System.Windows.Window
    {

        public Window1()
        {
            InitializeComponent();
        }

        CollectionView myView;
        private void AddGrouping(object sender, RoutedEventArgs e)
        {
            myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
            if (myView.CanGroup == true)
            {
                PropertyGroupDescription groupDescription
                    = new PropertyGroupDescription("@Type");
                myView.GroupDescriptions.Add(groupDescription);
            }
            else
                return;
        }

        private void RemoveGrouping(object sender, RoutedEventArgs e)
        {
            myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
            myView.GroupDescriptions.Clear();
        }
    }
}

Imports System.Windows
Imports System.Windows.Data

Namespace GroupingSample
    Partial Public Class Window1
        Inherits System.Windows.Window

        Public Sub New()
            InitializeComponent()
        End Sub

        Private myView As CollectionView
        Private Sub AddGrouping(ByVal sender As Object, ByVal e As RoutedEventArgs)
            myView = CType(CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource), CollectionView)
            If myView.CanGroup = True Then
                Dim groupDescription As New PropertyGroupDescription("@Type")
                myView.GroupDescriptions.Add(groupDescription)
            Else
                Return
            End If
        End Sub

        Private Sub RemoveGrouping(ByVal sender As Object, ByVal e As RoutedEventArgs)
            myView = CType(CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource), CollectionView)
            myView.GroupDescriptions.Clear()
        End Sub
    End Class
End Namespace

Constructeurs

GroupStyle()

Initialise une nouvelle instance de la classe GroupStyle.Initializes a new instance of the GroupStyle class.

Champs

DefaultGroupPanel

Identifie le ItemsPanelTemplate par défaut qui crée le panneau utilisé pour disposer les éléments.Identifies the default ItemsPanelTemplate that creates the panel used to layout the items.

Propriétés

AlternationCount

Obtient ou définit le nombre d'objets GroupItem de remplacement.Gets or sets the number of alternating GroupItem objects.

ContainerStyle

Obtient ou définit le style appliqué au GroupItem généré pour chaque élément.Gets or sets the style that is applied to the GroupItem generated for each item.

ContainerStyleSelector

Permet au writer d'application de fournir une logique de sélection personnalisée pour un style à appliquer à chaque GroupItem généré.Enables the application writer to provide custom selection logic for a style to apply to each generated GroupItem.

Default

Obtient le style par défaut du groupe.Gets the default style of the group.

HeaderStringFormat

Obtient ou définit une chaîne composite qui spécifie la manière de mettre en forme l'en-tête si celui-ci est affiché en tant que chaîne.Gets or sets a composite string that specifies how to format the header if it is displayed as a string.

HeaderTemplate

Obtient ou définit le modèle utilisé pour afficher l'en-tête de groupe.Gets or sets the template that is used to display the group header.

HeaderTemplateSelector

Permet au writer d'application de fournir une logique de sélection personnalisée pour un modèle utilisé pour afficher l'en-tête de groupe.Enables the application writer to provide custom selection logic for a template that is used to display the group header.

HidesIfEmpty

Obtient ou définit une valeur qui indique si les éléments correspondant à des groupes vides doivent être affichés.Gets or sets a value that indicates whether items corresponding to empty groups should be displayed.

Panel

Obtient ou définit un modèle qui crée le panneau utilisé pour disposer les éléments.Gets or sets a template that creates the panel used to layout the items.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnPropertyChanged(PropertyChangedEventArgs)

Déclenche l’événement PropertyChanged en utilisant les arguments fournis.Raises the PropertyChanged event using the provided arguments.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Événements

PropertyChanged

Se produit en cas de modification d'une valeur de propriété.Occurs when a property value changes.

Implémentations d’interfaces explicites

INotifyPropertyChanged.PropertyChanged

Se produit en cas de modification d'une valeur de propriété.Occurs when a property value changes.

S’applique à

Voir aussi