Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Filter Data in a Collection, Set the Filter property to a FilterEventHandler

<Window x: Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:local="clr-namespace:WpfApplication1"     Title="WPF" Height="124" Width="124">     <Window.Resources>         <local:Countries x:Key="countries"/>         <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource countries}}"             Filter="CollectionViewSource_EuropeFilter" />     </Window.Resources>     <Grid>         <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}"             DisplayMemberPath="Name"/>     </Grid> </Window> //File:Window.xaml.vb 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 CollectionViewSource_EuropeFilter(sender As Object, e As FilterEventArgs)       Dim country As Country = TryCast(e.Item, Country)       e.Accepted = (country.Continent = Continent.Europe)     End Sub   End Class   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