GroupStyle Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Grubun her düzeye nasıl bakmasını istediğinizi tanımlar.
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
- Devralma
-
GroupStyle
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örneklerde, bir öğesine bağlı olan ItemsControl ve XmlDataProvider gruplandırma ekleme ve kaldırma mantığını içeren arka planda kod içeriği gösterilmektedir. Onay kutusu işaretlendiğinde, öğesinin ItemsControl içeriği özniteliğine Type
göre gruplandırılır.
Her grup türündedir CollectionViewGroup. GroupStyleHeaderTemplate, her grubun öğesini görüntüleyen Name bir TextBlock olarak görünecek şekilde belirtilir. Bu durumda, Name veya Home
şeklindedirWork
.
<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
Oluşturucular
GroupStyle() |
GroupStyle sınıfının yeni bir örneğini başlatır. |
Alanlar
DefaultGroupPanel |
Öğeleri düzenlerken kullanılan paneli oluşturan varsayılan ItemsPanelTemplate değeri tanımlar. |
Özellikler
AlternationCount |
Değişen GroupItem nesne sayısını alır veya ayarlar. |
ContainerStyle |
Her öğe için oluşturulana GroupItem uygulanan stili alır veya ayarlar. |
ContainerStyleSelector |
Uygulama yazıcısının oluşturulan GroupItemher öğesine uygulanacak stil için özel seçim mantığı sağlamasına olanak tanır. |
Default |
Grubun varsayılan stilini alır. |
HeaderStringFormat |
Üst bilginin dize olarak görüntüleniyorsa nasıl biçimlendirildiğini belirten bir bileşik dize alır veya ayarlar. |
HeaderTemplate |
Grup üst bilgisini görüntülemek için kullanılan şablonu alır veya ayarlar. |
HeaderTemplateSelector |
Uygulama yazıcısının, grup üst bilgisini görüntülemek için kullanılan bir şablon için özel seçim mantığı sağlamasına olanak tanır. |
HidesIfEmpty |
Boş gruplara karşılık gelen öğelerin görüntülenip görüntülenmeyeceğini belirten bir değer alır veya ayarlar. |
Panel |
Öğeleri düzenlerken kullanılan paneli oluşturan bir şablonu alır veya ayarlar. |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnPropertyChanged(PropertyChangedEventArgs) |
PropertyChanged Sağlanan bağımsız değişkenleri kullanarak olayı tetikler. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Ekinlikler
PropertyChanged |
Özellik değeri değiştiğinde gerçekleşir. |
Belirtik Arabirim Kullanımları
INotifyPropertyChanged.PropertyChanged |
Özellik değeri değiştiğinde gerçekleşir. |
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin