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 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 Attributs gruppiert Type .
Jede Gruppe ist vom Typ CollectionViewGroup. Der GroupStyleHeaderTemplate Wert wird so angegeben, dass es als TextBlock ein Element angezeigt wird, das die Name einzelnen Gruppen anzeigt. In diesem Fall ist dies 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)
{
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
| Name | Beschreibung |
|---|---|
| GroupStyle() |
Initialisiert eine neue Instanz der GroupStyle-Klasse. |
Felder
| Name | Beschreibung |
|---|---|
| DefaultGroupPanel |
Gibt den Standardwert ItemsPanelTemplate an, der das Panel erstellt, das zum Layout der Elemente verwendet wird. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AlternationCount |
Dient zum Abrufen oder Festlegen der Anzahl der abwechselnden GroupItem Objekte. |
| ContainerStyle |
Dient zum Abrufen oder Festlegen der Formatvorlage, die auf das GroupItem generierte Element angewendet wird. |
| ContainerStyleSelector |
Ermöglicht dem Anwendungs-Writer die Bereitstellung einer benutzerdefinierten Auswahllogik für eine Formatvorlage, die auf die einzelnen generierten Elemente 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
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (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
| Name | Beschreibung |
|---|---|
| PropertyChanged |
Tritt auf, wenn sich ein Eigenschaftswert ändert. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| INotifyPropertyChanged.PropertyChanged |
Tritt auf, wenn sich ein Eigenschaftswert ändert. |