GroupStyle Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit la façon dont vous souhaitez que le groupe examine chaque niveau.
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
[<System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)>]
type GroupStyle = class
interface INotifyPropertyChanged
Public Class GroupStyle
Implements INotifyPropertyChanged
- Héritage
-
GroupStyle
- Attributs
- Implémente
Exemples
Les exemples suivants montrent un ItemsControl lié à un XmlDataProvider et au contenu code-behind qui contient la logique d’ajout et de suppression de regroupement. Lorsque la case à cocher est cochée, le contenu de l'ItemsControl est regroupé par l’attribut Type
.
Chaque groupe est de type CollectionViewGroup. La GroupStyleHeaderTemplate est spécifiée afin qu’elle apparaisse sous la forme d’un TextBlock qui affiche la Name de chaque groupe. Dans ce cas, la Name est Work
ou 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. |
Champs
DefaultGroupPanel |
Identifie la ItemsPanelTemplate par défaut qui crée le panneau utilisé pour mettre en page les éléments. |
Propriétés
AlternationCount |
Obtient ou définit le nombre d’objets GroupItem alternés. |
ContainerStyle |
Obtient ou définit le style appliqué au GroupItem généré pour chaque élément. |
ContainerStyleSelector |
Permet au writer d’application de fournir une logique de sélection personnalisée pour qu’un style s’applique à chaque GroupItemgénéré. |
Default |
Obtient le style par défaut du groupe. |
HeaderStringFormat |
Obtient ou définit une chaîne composite qui spécifie comment mettre en forme l’en-tête s’il est affiché sous forme de chaîne. |
HeaderTemplate |
Obtient ou définit le modèle utilisé pour afficher l’en-tête de groupe. |
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. |
HidesIfEmpty |
Obtient ou définit une valeur qui indique si les éléments correspondant aux groupes vides doivent être affichés. |
Panel |
Obtient ou définit un modèle qui crée le panneau utilisé pour mettre en page les éléments. |
Méthodes
Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
OnPropertyChanged(PropertyChangedEventArgs) |
Déclenche l’événement PropertyChanged à l’aide des arguments fournis. |
ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Événements
PropertyChanged |
Se produit lorsqu’une valeur de propriété change. |
Implémentations d’interfaces explicites
INotifyPropertyChanged.PropertyChanged |
Se produit lorsqu’une valeur de propriété change. |