728x90
반응형
728x170
▶ XAML
<ListBox Name="listBox">
<ListBox.ItemTemplate>
...
</ListBox.ItemTemplate>
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock
Margin="6"
Foreground="White"
Background="DarkGray"
FontWeight="Bold"
FontSize="12pt"
Text="{Binding Path=Name}" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
</ListBox>
728x90
▶ C#
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Globalization;
using System.Windows.Data;
...
/// <summary>
/// 기간 그룹 설명자
/// </summary>
public class PeriodGroupDescription : GroupDescription
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 항목에서 그룹 명칭 구하기 - GroupNameFromItem(item, level, cultureInfo)
/// <summary>
/// 항목에서 그룹 명칭 구하기
/// </summary>
/// <param name="item">항목</param>
/// <param name="level">레벨</param>
/// <param name="cultureInfo">CultureInfo 객체</param>
/// <returns>그룹 명칭</returns>
public override object GroupNameFromItem(object item, int level, CultureInfo cultureInfo)
{
Person person = item as Person;
if(person.BirthDate == null)
{
return "Unknown";
}
int year = ((DateTime)person.BirthDate).Year;
if(year < 1575) return "Pre-Baroque";
if(year < 1725) return "Baroque";
if(year < 1795) return "Classical";
if(year < 1870) return "Romantic";
if(year < 1910) return "20th Century";
return "Post-War";
}
#endregion
}
...
ObservableCollection<Person> observableCollection = new ObservableCollection<Person>();
...
ListCollectionView listCollectionView = new ListCollectionView(observableCollection);
listCollectionView.SortDescriptions.Add(new SortDescription("BirthDate", ListSortDirection.Ascending));
listCollectionView.GroupDescriptions.Add(new PeriodGroupDescription());
...
this.listBox.ItemsSource = listCollectionView;
if(this.listBox.Items.Count > 0)
{
this.listBox.SelectedIndex = 0;
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] LinearGradientBrush 클래스 : 애니메이션 이동 길이 구하기 (0) | 2014.01.23 |
---|---|
[C#/WPF] Timeline 엘리먼트 : RepeatBehavior 속성 사용하기 (0) | 2014.01.22 |
[C#/WPF] Timeline 엘리먼트 : Duration 속성 사용하기 (0) | 2014.01.22 |
[C#/WPF] 베지어 곡선 포인트 리스트 구하기 (0) | 2014.01.22 |
[C#/WPF] 나선형 Point 리스트 생성하기 (0) | 2014.01.22 |
[C#/WPF] CollectionView 클래스 : Filter 속성 설정하기 (0) | 2014.01.22 |
[C#/WPF] CollectionView 클래스 : 정렬 순서 추가하기 (0) | 2014.01.15 |
[C#/WPF] CollectionView 클래스 : 정렬 순서 지우기 (0) | 2014.01.15 |
[C#/WPF] ItemsControl 클래스 : 항목 구하기 (0) | 2014.01.14 |
[C#/WPF] x:Type 태그 확장 사용하기 (0) | 2014.01.14 |
댓글을 달아 주세요