ItemsControl.GroupStyle 속성

정의

각 그룹 수준의 모양을 정의하는 GroupStyle 개체의 컬렉션을 가져옵니다.Gets a collection of GroupStyle objects that define the appearance of each level of groups.

public:
 property System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::GroupStyle ^> ^ GroupStyle { System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::GroupStyle ^> ^ get(); };
public System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.GroupStyle> GroupStyle { get; }
member this.GroupStyle : System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.GroupStyle>
Public ReadOnly Property GroupStyle As ObservableCollection(Of GroupStyle)

속성 값

각 그룹 수준의 모양을 정의하는 GroupStyle 개체의 컬렉션입니다.A collection of GroupStyle objects that define the appearance of each level of groups.

예제

다음 예제에 나온을 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. GroupStyle HeaderTemplate 으로 표시 되도록 지정을 TextBlock 표시 하는 Name 각 그룹입니다.The 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

설명

인덱스 1에 있는 항목 다음에 설명 수준 등, 인덱스 0에 있는 엔트리 최상위 그룹을 설명 합니다.The entry at index 0 describes the top-level groups, the entry at index 1 describes the next level, and so on. 컬렉션에 있는 항목 보다 더 많은 수준의 그룹화의 경우 마지막 항목 추가 수준에 사용 됩니다.If there are more levels of grouping than entries in the collection, the last entry is used for the extra levels.

XAML 속성 요소 사용XAML Property Element Usage

<object>  
  <object.GroupStyle>  
    OneOrMoreGroupStyleObjects  
  </object.GroupStyle>  
</object>  
  

XAML 값XAML Values

OneOrMoreGroupStyleObjectsOneOrMoreGroupStyleObjects
하나 이상의 GroupStyle 개체입니다.One or more GroupStyle objects.

적용 대상

추가 정보