GroupStyle Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert, wie die Gruppe jede Ebene betrachten soll.
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 eine ItemsControl, die an eine XmlDataProvider gebunden ist, und den CodeBehind-Inhalt, der die Logik zum Hinzufügen und Entfernen von Gruppierung enthält. Wenn das Kontrollkästchen aktiviert ist, wird der Inhalt der ItemsControl nach dem attribut Type
gruppiert.
Jede Gruppe ist vom Typ CollectionViewGroup. Die GroupStyleHeaderTemplate wird so angegeben, dass sie als TextBlock angezeigt wird, die die Name jeder Gruppe anzeigt. In diesem Fall ist die Name entweder Work
oder 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
Konstruktoren
GroupStyle() |
Initialisiert eine neue Instanz der GroupStyle Klasse. |
Felder
DefaultGroupPanel |
Gibt die Standard-ItemsPanelTemplate an, mit der das Panel erstellt wird, das zum Layout der Elemente verwendet wird. |
Eigenschaften
AlternationCount |
Dient zum Abrufen oder Festlegen der Anzahl der abwechselnden GroupItem Objekte. |
ContainerStyle |
Dient zum Abrufen oder Festlegen der Formatvorlage, die auf die für jedes Element generierten GroupItem angewendet wird. |
ContainerStyleSelector |
Ermöglicht es dem Anwendungsschreiber, benutzerdefinierte Auswahllogik für eine Formatvorlage bereitzustellen, die auf jede generierte GroupItemangewendet werden soll. |
Default |
Ruft die Standardformatvorlage der Gruppe ab. |
HeaderStringFormat |
Dient zum Abrufen oder Festlegen einer zusammengesetzten Zeichenfolge, die angibt, wie die Kopfzeile formatiert wird, wenn sie als Zeichenfolge angezeigt wird. |
HeaderTemplate |
Ruft die Vorlage ab, die zum Anzeigen der Gruppenkopfzeile verwendet wird, oder legt sie fest. |
HeaderTemplateSelector |
Ermöglicht dem Anwendungsschreiber die Bereitstellung einer benutzerdefinierten Auswahllogik für eine Vorlage, die zum Anzeigen des Gruppenkopfs verwendet wird. |
HidesIfEmpty |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Elemente angezeigt werden sollen, die leeren Gruppen entsprechen. |
Panel |
Dient zum Abrufen oder Festlegen einer Vorlage, die das Panel erstellt, das zum Layout der Elemente verwendet wird. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
OnPropertyChanged(PropertyChangedEventArgs) |
Löst das PropertyChanged Ereignis mithilfe der bereitgestellten Argumente aus. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Ereignisse
PropertyChanged |
Tritt auf, wenn sich ein Eigenschaftswert ändert. |
Explizite Schnittstellenimplementierungen
INotifyPropertyChanged.PropertyChanged |
Tritt auf, wenn sich ein Eigenschaftswert ändert. |