Wrap collection based resource in a CollectionViewSource : Resource « Windows Presentation Foundation « C# / C Sharp






Wrap collection based resource in a CollectionViewSource

Wrap collection based resource in a CollectionViewSource
  

<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.cs
using System.Windows;
using System.Windows.Data;
using System.Collections.ObjectModel;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        private void CollectionViewSource_EuropeFilter(object sender, FilterEventArgs e)
        {
            Country country = e.Item as Country;
            e.Accepted = (country.Continent == Continent.Europe);
        }
    }

    public class Country
    {
        private string name;
        private Continent continent;

        public string Name
        {
            get{ return name;}
            set{name = value;}
        }

        public Continent Continent
        {
            get{return continent;}
            set{continent = value;}
        }

        public Country(string name, Continent continent)
        {
            this.name = name;
            this.continent = continent;
        }
    }

    public enum Continent
    {
        Europe,
        NorthAmerica,
    }

    public class Countries : Collection<Country>
    {
        public Countries()
        {
            this.Add(new Country("Great Britan", Continent.Europe));
            this.Add(new Country("USA", Continent.NorthAmerica));
            this.Add(new Country("Canada", Continent.NorthAmerica));
        }
    }
}

   
    
  








Related examples in the same category

1.Use outter resource or inner resource
2.Window level resource
3.Button style as Window resourceButton style as Window resource
4.Event Triggers as ResourceEvent Triggers as Resource
5.Reuse Font With ResourcesReuse Font With Resources
6.Define Double value as resourceDefine Double value as resource
7.Add a logical resource to the window's resource dictionaryAdd a logical resource to the window's resource dictionary
8.Font Size ResourcesFont Size Resources
9.Use EnvironmentInfo as ResourceUse EnvironmentInfo as Resource
10.Dynamic Resource: SystemColors.InactiveCaptionBrushKeyDynamic Resource: SystemColors.InactiveCaptionBrushKey
11.Load Resource for Application
12.No Logical ResourcesNo Logical Resources
13.Logical ResourcesLogical Resources
14.Relative pack URI referring to external component for a ResourceRelative pack URI referring to external component for a Resource
15.Find Control Styles with FindResource()Find Control Styles with FindResource()
16.TextGeometry as ResourceTextGeometry as Resource
17.Retrieving assembly manifest resources
18.Get Resource Names from AssemblyGet Resource Names from Assembly
19.Find Resource with FindResourceFind Resource with FindResource
20.Create Collection based Resource for data bindingCreate Collection based Resource for data binding
21.Add event handler to StackPanel in StackPanel resourceAdd event handler to StackPanel in StackPanel resource
22.Add Event handler in Panel ResourceAdd Event handler in Panel Resource
23.DataGridView and ResourceDataGridView and Resource
24.Dynamic ResourceDynamic Resource
25.Load Assembly ResourcesLoad Assembly Resources
26.BitmapImage as ResourcesBitmapImage as Resources
27.Cropped image as Resource
28.Load Xaml ResourceLoad Xaml Resource
29.Use Resources.Add to add static resouce from codeUse Resources.Add to add static resouce from code
30.Event Setter from ResourcesEvent Setter from Resources