//File:Window.xaml.vb Imports System Imports System.Collections Imports System.Windows Imports System.Windows.Data Imports System.Collections.ObjectModel Namespace WpfApplication1 Public Partial Class Window1 Inherits Window Public Sub New() InitializeComponent() End Sub Private Sub SortButton_Click(sender As Object, args As RoutedEventArgs) Dim sortableCountries As SortableCountries = DirectCast(Me.Resources("sortableCountries"), SortableCountries) Dim lcv As ListCollectionView = DirectCast(CollectionViewSource.GetDefaultView(sortableCountries), ListCollectionView) lcv.CustomSort = New SortCountries() End Sub End Class Public Class SortCountries Implements IComparer Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare Dim stringX As String = x.ToString() Dim stringY As String = y.ToString() Return stringX.CompareTo(stringY) End Function End Class Public Class SortableCountries Inherits ObservableCollection(Of String) Public Sub New() Me.Add("C") Me.Add("B") Me.Add("A") End Sub End Class End Namespace