GroupStyle GroupStyle GroupStyle GroupStyle Class

定義

レベルごとにグループの外観を定義します。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
継承
GroupStyleGroupStyleGroupStyleGroupStyle
属性
実装

次の例は、 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. GroupStyleHeaderTemplate各グループNameのを表示TextBlockするとして表示されるように指定されています。The GroupStyle HeaderTemplate is specified so that it appears as a TextBlock that displays the Name of each the group. この場合、はまたNameHomeWorkいずれかになります。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() GroupStyle() GroupStyle()

GroupStyle クラスの新しいインスタンスを初期化します。Initializes a new instance of the GroupStyle class.

フィールド

DefaultGroupPanel DefaultGroupPanel DefaultGroupPanel DefaultGroupPanel

項目のレイアウトに使用するパネルを作成する既定の ItemsPanelTemplate を識別します。Identifies the default ItemsPanelTemplate that creates the panel used to layout the items.

プロパティ

AlternationCount AlternationCount AlternationCount AlternationCount

代替 GroupItem オブジェクトの数を取得または設定します。Gets or sets the number of alternating GroupItem objects.

ContainerStyle ContainerStyle ContainerStyle ContainerStyle

項目ごとに生成される GroupItem に適用されるスタイルを取得または設定します。Gets or sets the style that is applied to the GroupItem generated for each item.

ContainerStyleSelector ContainerStyleSelector ContainerStyleSelector ContainerStyleSelector

生成された各 GroupItem に適用するスタイルを選択するためのカスタム ロジックを、アプリケーション作成者が提供できるようにします。Enables the application writer to provide custom selection logic for a style to apply to each generated GroupItem.

Default Default Default Default

グループの既定のスタイルを取得します。Gets the default style of the group.

HeaderStringFormat HeaderStringFormat HeaderStringFormat HeaderStringFormat

ヘッダーが文字列として表示される場合に、その書式を指定する複合文字列を取得または設定します。Gets or sets a composite string that specifies how to format the header if it is displayed as a string.

HeaderTemplate HeaderTemplate HeaderTemplate HeaderTemplate

グループ ヘッダーを表示するために使用するテンプレートを取得または設定します。Gets or sets the template that is used to display the group header.

HeaderTemplateSelector HeaderTemplateSelector HeaderTemplateSelector HeaderTemplateSelector

グループ ヘッダーの表示に使用するテンプレートを選択するためのカスタム ロジックを、アプリケーション作成者が提供できるようにします。Enables the application writer to provide custom selection logic for a template that is used to display the group header.

HidesIfEmpty HidesIfEmpty HidesIfEmpty HidesIfEmpty

空のグループに対応する項目が表示されるかどうかを指定する値を取得または設定します。Gets or sets a value that indicates whether items corresponding to empty groups should be displayed.

Panel Panel Panel Panel

項目のレイアウトに使用するパネルを作成するテンプレートを取得または設定します。Gets or sets a template that creates the panel used to layout the items.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs)

指定された引数を使用して、PropertyChanged イベントを発生させます。Raises the PropertyChanged event using the provided arguments.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

イベント

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

プロパティ値が変更するときに発生します。Occurs when a property value changes.

明示的なインターフェイスの実装

INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged

プロパティ値が変更するときに発生します。Occurs when a property value changes.

適用対象

こちらもご覧ください