The default GroupStyle indents the items in a group : Style « Windows Presentation Foundation « C# / C Sharp






The default GroupStyle indents the items in a group

The default GroupStyle indents the items in a group
  

<Window 
    x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:WpfApplication1="clr-namespace:WpfApplication1"
    Title="WPF" Height="300" Width="160">

    <Window.Resources>
        <WpfApplication1:Countries x:Key="countries"/>
        <WpfApplication1:GroupByContinentConverter x:Key="GroupByContinentConverter"/>
        <CollectionViewSource 
            x:Key="cvs" 
            Source="{Binding Source={StaticResource countries}}">
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription Converter="{StaticResource GroupByContinentConverter}" />
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>
    </Window.Resources>
    <Grid>
        <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" DisplayMemberPath="Name" >
            <ItemsControl.GroupStyle>
                <x:Static Member="GroupStyle.Default"/>
            </ItemsControl.GroupStyle>
        </ItemsControl>

    </Grid>
</Window>
//File:Window.xaml.cs

using System;
using System.Globalization;
using System.Windows.Data;
using System.Collections.ObjectModel;

namespace WpfApplication1
{
    public class GroupByContinentConverter : IValueConverter
    {
        public object Convert(object value,Type targetType,object parameter,CultureInfo culture)
        {
            Country country = (Country)value;
            // Decide which group the country belongs in
            switch (country.Continent)
            {
                case Continent.NorthAmerica:
                    return "Americas";
                default:
                    return "Others";
            }
        }

        public object ConvertBack(object value,Type targetType,object parameter,CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

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

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

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

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

    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.Double value as the Font sizeDouble value as the Font size
2.FontFamily resource constantFontFamily resource constant
3.Styles With Same KeysStyles With Same Keys
4.Setter With Binding to SliderSetter With Binding to Slider
5.Style With Data TriggerStyle With Data Trigger
6.Styles With Target TypesStyles With Target Types
7.Style With Multiple ElementsStyle With Multiple Elements
8.Style With Multiple ButtonsStyle With Multiple Buttons
9.Style With ResourceStyle With Resource
10.Style With Property ElementStyle With Property Element
11.Style With TriggersStyle With Triggers
12.Style Slider: Background, IsSnapToTickEnabled, AutoToolTipPlacement, TickFrequencyStyle Slider: Background, IsSnapToTickEnabled, AutoToolTipPlacement, TickFrequency
13.Normal: Origin at upper leftNormal: Origin at upper left
14.Stroke Start Line CapStroke Start Line Cap
15.Property TriggerProperty Trigger
16.Using a Style resourceUsing a Style resource
17.Sharing a StyleSharing a Style
18.Ignore an Implicit Style by setting Style to NullIgnore an Implicit Style by setting Style to Null
19.Set a Style ProgrammaticallySet a Style Programmatically
20.extends StyleSelector to create your own style selectorextends StyleSelector to create your own style selector