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 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für