GroupStyle クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
グループで各レベルを表示する方法を定義します。
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
- 継承
-
GroupStyle
- 属性
- 実装
例
次の例は、XmlDataProvider にバインドされている ItemsControl と、グループ化を追加および削除するロジックを含む分離コード コンテンツを示しています。 チェック ボックスをオンにすると、ItemsControl の内容が Type
属性によってグループ化されます。
各グループの種類は CollectionViewGroupです。
GroupStyle
HeaderTemplate は、各グループの Name を表示する TextBlock として表示されるように指定されます。 この場合、Name は Work
または 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 クラスの新しいインスタンスを初期化します。 |
フィールド
DefaultGroupPanel |
項目のレイアウトに使用するパネルを作成する既定の ItemsPanelTemplate を識別します。 |
プロパティ
AlternationCount |
交互の GroupItem オブジェクトの数を取得または設定します。 |
ContainerStyle |
各項目に対して生成される GroupItem に適用されるスタイルを取得または設定します。 |
ContainerStyleSelector |
アプリケーション ライターが、生成された各 GroupItemに適用するスタイルのカスタム選択ロジックを提供できるようにします。 |
Default |
グループの既定のスタイルを取得します。 |
HeaderStringFormat |
ヘッダーを文字列として表示する場合の書式を指定する複合文字列を取得または設定します。 |
HeaderTemplate |
グループ ヘッダーの表示に使用するテンプレートを取得または設定します。 |
HeaderTemplateSelector |
アプリケーション ライターが、グループ ヘッダーの表示に使用されるテンプレートのカスタム選択ロジックを提供できるようにします。 |
HidesIfEmpty |
空のグループに対応する項目を表示するかどうかを示す値を取得または設定します。 |
Panel |
項目のレイアウトに使用するパネルを作成するテンプレートを取得または設定します。 |
メソッド
Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
OnPropertyChanged(PropertyChangedEventArgs) |
指定した引数を使用して PropertyChanged イベントを発生させます。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
イベント
PropertyChanged |
プロパティ値が変更されたときに発生します。 |
明示的なインターフェイスの実装
INotifyPropertyChanged.PropertyChanged |
プロパティ値が変更されたときに発生します。 |
適用対象
こちらもご覧ください
.NET