GroupStyle Класс

Определение

Определяет, как должна выглядеть группа на каждом уровне.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
Наследование
GroupStyle
Атрибуты
Реализации

Примеры

В следующих примерах показан ItemsControl объект, привязанный XmlDataProvider к и содержимому кода программной части, которое содержит логику для добавления и удаления группирования.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. Если флажок установлен, содержимое ItemsControl объекта группируются Type по атрибуту.When the check box is checked, the content of the ItemsControl is grouped by the Type attribute.

Каждая группа имеет тип CollectionViewGroup.Each group is of type CollectionViewGroup. Задается таким образом, чтобы он отображался в Name виде TextBlock , который отображает все группы. GroupStyle HeaderTemplateThe GroupStyle HeaderTemplate is specified so that it appears as a TextBlock that displays the Name of each the group. В этом случае параметр Name Work имеет значение или 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

Конструкторы

GroupStyle()

Инициализирует новый экземпляр класса GroupStyle.Initializes a new instance of the GroupStyle class.

Поля

DefaultGroupPanel

Идентифицирующий ItemsPanelTemplate по умолчанию, создающий панель, используемую для размещения элементов.Identifies the default ItemsPanelTemplate that creates the panel used to layout the items.

Свойства

AlternationCount

Возвращает или задает количество чередующихся объектов GroupItem.Gets or sets the number of alternating GroupItem objects.

ContainerStyle

Получает или задает стиль, применяемый к GroupItem, созданному для каждого элемента.Gets or sets the style that is applied to the GroupItem generated for each item.

ContainerStyleSelector

Позволяет записывающему элементу приложения предоставлять пользовательскую логику выбора для стиля, применяемого к каждому сгенерированному GroupItem.Enables the application writer to provide custom selection logic for a style to apply to each generated GroupItem.

Default

Получает стиль группы по умолчанию.Gets the default style of the group.

HeaderStringFormat

Возвращает или задает составную строку, которая определяет форматирование заголовка, если он отображается как строка.Gets or sets a composite string that specifies how to format the header if it is displayed as a string.

HeaderTemplate

Возвращает или задает шаблон для использования для отображения заголовка группы.Gets or sets the template that is used to display the group header.

HeaderTemplateSelector

Позволяет записывающему элементу приложения предоставлять пользовательскую логику выбора для шаблона для использования с целью отображения заголовка группы.Enables the application writer to provide custom selection logic for a template that is used to display the group header.

HidesIfEmpty

Возвращает или задает значение, которое показывает, должны ли отображаться элементы, соответствующие пустым группам.Gets or sets a value that indicates whether items corresponding to empty groups should be displayed.

Panel

Возвращает или задает шаблон, создающий панель, используемую для размещения элементов.Gets or sets a template that creates the panel used to layout the items.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnPropertyChanged(PropertyChangedEventArgs)

Вызывает событие PropertyChanged с предоставленным аргументами.Raises the PropertyChanged event using the provided arguments.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

События

PropertyChanged

Возникает при смене значения свойства.Occurs when a property value changes.

Явные реализации интерфейса

INotifyPropertyChanged.PropertyChanged

Возникает при смене значения свойства.Occurs when a property value changes.

Применяется к

Дополнительно