Sort Data in a Collection
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ComponentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" xmlns:local="clr-namespace:WpfApplication1" Title="WPF" Height="250" Width="200"> <Window.Resources> <local:Countries x:Key="countries"/> <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource countries}}"> <CollectionViewSource.SortDescriptions> <ComponentModel:SortDescription PropertyName="Name" /> </CollectionViewSource.SortDescriptions> </CollectionViewSource> </Window.Resources> <Grid> <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" DisplayMemberPath="Name" /> </Grid> </Window> //File:Window.xaml.vb Imports System.Collections.ObjectModel Namespace WpfApplication1 Public Class Country Private m_name As String Private m_continent As Continent Public Property Name() As String Get Return m_name End Get Set m_name = value End Set End Property Public Property Continent() As Continent Get Return m_continent End Get Set m_continent = value End Set End Property Public Sub New(name As String, continent As Continent) Me.m_name = name Me.m_continent = continent End Sub End Class Public Enum Continent Europe NorthAmerica End Enum Public Class Countries Inherits Collection(Of Country) Public Sub New() Me.Add(New Country("Great Britan", Continent.Europe)) Me.Add(New Country("USA", Continent.NorthAmerica)) Me.Add(New Country("Canada", Continent.NorthAmerica)) End Sub End Class End Namespace
1. | Apply Custom Sorting Logic to a Collection | ||
2. | Bind an ItemsControl to the CollectionViewSource, Set its DisplayMemberPath to display the Name property | ||
3. | Group Data in a Collection |