GroupStyle GroupStyle GroupStyle GroupStyle Class

Definition

Definiert, wie die Gruppe die einzelnen Ebenen betrachten kann.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
Vererbung
GroupStyleGroupStyleGroupStyleGroupStyle
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt eine ItemsControl Bindung an eine XmlDataProvider und den Code-Behind-Inhalt, der die Logik zum Hinzufügen und entfernen Sie die Gruppierung enthält.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. Wenn Sie dieses Kontrollkästchen aktiviert ist, wird der Inhalt von der ItemsControl ist gruppiert nach den Type Attribut.When the check box is checked, the content of the ItemsControl is grouped by the Type attribute.

Jede Gruppe ist vom Typ CollectionViewGroup.Each group is of type CollectionViewGroup. Die GroupStyle HeaderTemplate wird angegeben, damit es als angezeigt wird eine TextBlock angezeigt, die die Name der einzelnen der Gruppe.The GroupStyle HeaderTemplate is specified so that it appears as a TextBlock that displays the Name of each the group. In diesem Fall die Name ist entweder Work oder 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
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() GroupStyle() GroupStyle() GroupStyle()

Initialisiert eine neue Instanz der GroupStyle-Klasse.Initializes a new instance of the GroupStyle class.

Felder

DefaultGroupPanel DefaultGroupPanel DefaultGroupPanel DefaultGroupPanel

Gibt das Standard-ItemsPanelTemplate an, die der den Bereich zum Festlegen des Layouts der Elemente erstellt.Identifies the default ItemsPanelTemplate that creates the panel used to layout the items.

Eigenschaften

AlternationCount AlternationCount AlternationCount AlternationCount

Ruft die Anzahl abwechselnder GroupItem-Objekte ab oder legt diese fest.Gets or sets the number of alternating GroupItem objects.

ContainerStyle ContainerStyle ContainerStyle ContainerStyle

Ruft die Formatvorlage ab oder legt sie fest, die auf das GroupItem angewendet wird, das für jedes Element generiert wird.Gets or sets the style that is applied to the GroupItem generated for each item.

ContainerStyleSelector ContainerStyleSelector ContainerStyleSelector ContainerStyleSelector

Ermöglicht Anwendungsentwicklern das Bereitstellen einer benutzerdefinierten Auswahllogik für einen Stil, der auf jedes generierte GroupItem angewendet werden soll.Enables the application writer to provide custom selection logic for a style to apply to each generated GroupItem.

Default Default Default Default

Ruft den Standardstil der Gruppe ab.Gets the default style of the group.

HeaderStringFormat HeaderStringFormat HeaderStringFormat HeaderStringFormat

Ruft eine kombinierte Zeichenfolge ab, die angibt, wie der Header formatiert werden soll, wenn er als Zeichenfolge angezeigt wird, oder legt diese fest.Gets or sets a composite string that specifies how to format the header if it is displayed as a string.

HeaderTemplate HeaderTemplate HeaderTemplate HeaderTemplate

Ruft die Vorlage ab, mit der der Gruppenheader angezeigt wird, oder legt diese fest.Gets or sets the template that is used to display the group header.

HeaderTemplateSelector HeaderTemplateSelector HeaderTemplateSelector HeaderTemplateSelector

Ermöglicht es Anwendungsentwicklern, eine benutzerdefinierte Auswahllogik für eine Vorlage bereitzustellen, mit der der Gruppenheader angezeigt wird.Enables the application writer to provide custom selection logic for a template that is used to display the group header.

HidesIfEmpty HidesIfEmpty HidesIfEmpty HidesIfEmpty

Ruft einen Wert ab, der angibt, ob Elemente, die leeren Gruppen entsprechen, angezeigt werden sollen, oder legt diesen fest.Gets or sets a value that indicates whether items corresponding to empty groups should be displayed.

Panel Panel Panel Panel

Ruft eine Vorlage ab, die den Bereich zum Festlegen des Layouts der Elemente erstellt, oder legt diese fest.Gets or sets a template that creates the panel used to layout the items.

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs)

Löst das PropertyChanged-Ereignis unter Verwendung der angegebenen Argumente aus.Raises the PropertyChanged event using the provided arguments.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Ereignisse

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.Occurs when a property value changes.

Explizite Schnittstellenimplementierungen

INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.Occurs when a property value changes.

Gilt für:

Siehe auch