GroupStyle Třída

Definice

Definuje, jak chcete, aby skupina vypadala na všech úrovních.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
[<System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)>]
type GroupStyle = class
    interface INotifyPropertyChanged
Public Class GroupStyle
Implements INotifyPropertyChanged
Dědičnost
GroupStyle
Atributy
Implementuje

Příklady

V následujících příkladech je znázorněna ItemsControl vazba, která je svázána s XmlDataProvider a kódem na pozadí, který obsahuje logiku pro přidání a odebrání seskupení.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. Je-li zaškrtnuto políčko, je obsah ovládacího panelu ItemsControl seskupen podle Type atributu.When the check box is checked, the content of the ItemsControl is grouped by the Type attribute.

Každá skupina je typu CollectionViewGroup .Each group is of type CollectionViewGroup. GroupStyle HeaderTemplate Je určena tak, aby se zobrazila jako TextBlock , která zobrazuje Name každou skupinu.The GroupStyle HeaderTemplate is specified so that it appears as a TextBlock that displays the Name of each the group. V tomto případě Name je buď Work nebo 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.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

Konstruktory

GroupStyle()

Inicializuje novou instanci GroupStyle třídy.Initializes a new instance of the GroupStyle class.

Pole

DefaultGroupPanel

Určuje výchozí ItemsPanelTemplate , který vytvoří panel použitý k rozložení položek.Identifies the default ItemsPanelTemplate that creates the panel used to layout the items.

Vlastnosti

AlternationCount

Získá nebo nastaví počet střídajících se GroupItem objektů.Gets or sets the number of alternating GroupItem objects.

ContainerStyle

Získá nebo nastaví styl, který se použije pro GroupItem vygenerované pro každou položku.Gets or sets the style that is applied to the GroupItem generated for each item.

ContainerStyleSelector

Umožňuje zapisovači aplikace poskytovat vlastní logiku výběru pro styl, který se má použít u každého generovaného GroupItem .Enables the application writer to provide custom selection logic for a style to apply to each generated GroupItem.

Default

Získá výchozí styl skupiny.Gets the default style of the group.

HeaderStringFormat

Získá nebo nastaví složený řetězec, který určuje, jak se má formátovat záhlaví, pokud se zobrazí jako řetězec.Gets or sets a composite string that specifies how to format the header if it is displayed as a string.

HeaderTemplate

Získá nebo nastaví šablonu, která se používá k zobrazení záhlaví skupiny.Gets or sets the template that is used to display the group header.

HeaderTemplateSelector

Umožňuje zapisovači aplikace poskytnout vlastní logiku výběru pro šablonu, která se používá k zobrazení záhlaví skupiny.Enables the application writer to provide custom selection logic for a template that is used to display the group header.

HidesIfEmpty

Získává nebo nastavuje hodnotu, která indikuje, jestli se mají zobrazovat položky odpovídající prázdným skupinám.Gets or sets a value that indicates whether items corresponding to empty groups should be displayed.

Panel

Získá nebo nastaví šablonu, která vytvoří panel použitý k rozložení položek.Gets or sets a template that creates the panel used to layout the items.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
OnPropertyChanged(PropertyChangedEventArgs)

Vyvolá PropertyChanged událost pomocí zadaných argumentů.Raises the PropertyChanged event using the provided arguments.

ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Události

PropertyChanged

Vyvolá se při změně hodnoty vlastnosti.Occurs when a property value changes.

Explicitní implementace rozhraní

INotifyPropertyChanged.PropertyChanged

Vyvolá se při změně hodnoty vlastnosti.Occurs when a property value changes.

Platí pro

Viz také