The default GroupStyle indents the items in a group : Grid « Windows Presentation Foundation « VB.Net






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.vb

Imports System
Imports System.Globalization
Imports System.Windows.Data
Imports System.Collections.ObjectModel

Namespace WpfApplication1
  Public Class GroupByContinentConverter
    Implements IValueConverter
    Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
      Dim country As Country = DirectCast(value, Country)
      ' Decide which group the country belongs in
      Select Case country.Continent
        Case Continent.NorthAmerica
          Return "Americas"
        Case Else
          Return "Others"
      End Select
    End Function

    Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
      Throw New NotImplementedException()
    End Function
  End Class

  Public Class Country
    Private m_name As String
    Private m_continent As Continent

    Public Sub New(name As String, continent As Continent)
      Me.m_name = name
      Me.m_continent = continent
    End Sub

    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
  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

   
    
    
    
    
    
    
  








Related examples in the same category

1.The first row of a gridThe first row of a grid
2.Positioning elements using a Grid
3.Layout within a button using GridLayout within a button using Grid
4.Label in a GridLabel in a Grid
5.Display Content in Resizable Split PanelDisplay Content in Resizable Split Panel
6.Place more than two object to one cellPlace more than two object to one cell
7.Add StackPanel to Row 0Add StackPanel to Row 0
8.Using the attached properties of Grid
9.Two columns and three rows columnsTwo columns and three rows columns
10.Fixed column widthFixed column width
11.Grid with row and column definition and place buttons to grid cellsGrid with row and column definition and place buttons to grid cells
12.Shared Size GroupsShared Size Groups
13.DoubleSplit WindowDoubleSplit Window
14.Grid PreviewMouseDown action and MouseDown actionGrid PreviewMouseDown action and MouseDown action
15.Grid MouseMoveGrid MouseMove
16.Grid MouseLeftButtonDownGrid MouseLeftButtonDown
17.Grid MouseLeftButtonUpGrid MouseLeftButtonUp
18.Use the Grid to create a dialog box that uses the WPF layout API
19.Is Grid ReadOnlyIs Grid ReadOnly
20.Dynamically add Button to a Grid and add Action listenerDynamically add Button to a Grid and add Action listener
21.Setting Grid row heights in codeSetting Grid row heights in code
22.Layout Controls with Grid in codeLayout Controls with Grid in code
23.Show Grid lines in codeShow Grid lines in code
24.Grid mouse down eventGrid mouse down event
25.Grid Preview mouse down eventGrid Preview mouse down event
26.Put Button onto a GridPut Button onto a Grid
27.Use the IsSharedSizeScope attached property of the Grid elementUse the IsSharedSizeScope attached property of the Grid element
28.Change the margins of an element that is within a Grid by XAML and programmatic codeChange the margins of an element that is within a Grid by XAML and programmatic code
29.Programmatically use the positioning methods of GridProgrammatically use the positioning methods of Grid
30.Add a ColumnDefinition to GridAdd a ColumnDefinition to Grid
31.Add a RowDefinition to GridAdd a RowDefinition to Grid
32.Clear All ColumnsClear All Columns
33.Clear All RowsClear All Rows
34.Remove One ColumnRemove One Column
35.Remove One RowRemove One Row
36.The current number of ColumnsThe current number of Columns
37.The current number of RowsThe current number of Rows
38.Remove 5 Columns with ColumnDefinitions.RemoveRangeRemove 5 Columns with ColumnDefinitions.RemoveRange
39.Remove 5 Row with RowDefinitions.RemoveRange
40.Contains RowContains Row
41.Contains Column?Contains Column?
42.Insert RowInsert Row
43.Insert ColumnInsert Column
44.Set control to specific row and column in codeSet control to specific row and column in code
45.A resizable layoutbased on GridA resizable layoutbased on Grid