GroupStyle Klasse

Definition

Definiert, wie die Gruppe die einzelnen Ebenen betrachten kann.

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
Vererbung
GroupStyle
Attribute
Implementiert

Beispiele

Die folgenden Beispiele zeigen einen ItemsControl , der an einen XmlDataProvider und den CodeBehind-Inhalt gebunden ist, der die Logik zum Hinzufügen und Entfernen von Gruppierung enthält. Wenn das Kontrollkästchen aktiviert ist, wird der Inhalt des ItemsControl nach dem Type -Attribut gruppiert.

Jede Gruppe ist vom Typ CollectionViewGroup. Der GroupStyleHeaderTemplate wird angegeben, sodass es als ein TextBlock angezeigt wird, das die Name der einzelnen Gruppen anzeigt. In diesem Fall ist Work entweder oder .NameHome

<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

Konstruktoren

GroupStyle()

Initialisiert eine neue Instanz der GroupStyle-Klasse.

Felder

DefaultGroupPanel

Gibt das Standard-ItemsPanelTemplate an, die der den Bereich zum Festlegen des Layouts der Elemente erstellt.

Eigenschaften

AlternationCount

Ruft die Anzahl abwechselnder GroupItem-Objekte ab oder legt diese fest.

ContainerStyle

Ruft die Formatvorlage ab oder legt sie fest, die auf das GroupItem angewendet wird, das für jedes Element generiert wird.

ContainerStyleSelector

Ermöglicht Anwendungsentwicklern das Bereitstellen einer benutzerdefinierten Auswahllogik für einen Stil, der auf jedes generierte GroupItem angewendet werden soll.

Default

Ruft den Standardstil der Gruppe ab.

HeaderStringFormat

Ruft eine kombinierte Zeichenfolge ab, die angibt, wie der Header formatiert werden soll, wenn er als Zeichenfolge angezeigt wird, oder legt diese fest.

HeaderTemplate

Ruft die Vorlage ab, mit der der Gruppenheader angezeigt wird, oder legt diese fest.

HeaderTemplateSelector

Ermöglicht es Anwendungsentwicklern, eine benutzerdefinierte Auswahllogik für eine Vorlage bereitzustellen, mit der der Gruppenheader angezeigt wird.

HidesIfEmpty

Ruft einen Wert ab, der angibt, ob Elemente, die leeren Gruppen entsprechen, angezeigt werden sollen, oder legt diesen fest.

Panel

Ruft eine Vorlage ab, die den Bereich zum Festlegen des Layouts der Elemente erstellt, oder legt diese fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnPropertyChanged(PropertyChangedEventArgs)

Löst das PropertyChanged-Ereignis unter Verwendung der angegebenen Argumente aus.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.

Explizite Schnittstellenimplementierungen

INotifyPropertyChanged.PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.

Gilt für:

Weitere Informationen