Xceed DataGrid for WPF v7.3 Documentation
Xceed.Wpf.DataGrid Assembly / Xceed.Wpf.DataGrid Namespace / ColumnManagerRow Class
Members Example


In This Topic
    ColumnManagerRow Class
    In This Topic
    Specialization of the Row class that contains a collection of ColumnManagerCells that can be used to manipulate the columns in a grid.
    Syntax
    'Declaration
     
    <TemplatePartAttribute(Name="PART_CellsHost", Type=System.Windows.Controls.Panel)>
    <ContentPropertyAttribute("Cells")>
    <StyleTypedPropertyAttribute(Property="FocusVisualStyle", StyleTargetType=System.Windows.Controls.Control)>
    <XmlLangPropertyAttribute("Language")>
    <UsableDuringInitializationAttribute(True)>
    <RuntimeNamePropertyAttribute("Name")>
    <UidPropertyAttribute("Uid")>
    <TypeDescriptionProviderAttribute(MS.Internal.ComponentModel.DependencyObjectProvider)>
    <NameScopePropertyAttribute("NameScope", System.Windows.NameScope)>
    Public Class ColumnManagerRow 
       Inherits Row
    'Usage
     
    Dim instance As ColumnManagerRow
    [TemplatePart(Name="PART_CellsHost", Type=System.Windows.Controls.Panel)]
    [ContentProperty("Cells")]
    [StyleTypedProperty(Property="FocusVisualStyle", StyleTargetType=System.Windows.Controls.Control)]
    [XmlLangProperty("Language")]
    [UsableDuringInitialization(true)]
    [RuntimeNameProperty("Name")]
    [UidProperty("Uid")]
    [TypeDescriptionProvider(MS.Internal.ComponentModel.DependencyObjectProvider)]
    [NameScopeProperty("NameScope", System.Windows.NameScope)]
    public class ColumnManagerRow : Row 
    Remarks

    Because rows are virtualized, meaning that they only exist when they are in a grid's viewport, references to them, or one of their cells, should not be kept.

    Fixed Columns vs. Templates

    In order to support fixed columns when creating a new row template for a table-view layout, the following criteria must be met:

    1. The PART_CellsHost template part must be a FixedCellPanel.
    2. The FixedCellCount property of the FixedCellPanel must be bound to the table view's FixedColumnCount property using a TwoWay ViewBinding.

    The fixed-cell-panel properties listed below are also usually bound when provided a new row template for a table-view layout:

    1. SplitterStyle (TemplateBinding xcdg:TableView.FixedColumnSplitterStyle)
    2. SplitterWidth (xcdg:ViewBinding FixedColumnSplitterWidth)
    3. ShowSplitter (xcdg:ViewBinding ShowFixedColumnSplitter)
    4. FixedColumnDropMarkPen (xcdg:ViewBinding FixedColumnDropMarkPen)

    If a new template is provided for a DataGridControl and fixed columns are to be supported, it is essential that a TableViewScrollViewer be used. This scroll viewer is responsible for preserving the TranslateTransforms that fix and scroll elements, as well as executing the PageLeft and PageRight actions according to the reduced viewport.  It is also recommended that an AdornerDecorator be located above the TableViewScrollViewer of the templated DataGridControl to support drag and dropping of the fixed-column splitter correctly.

    Example
    All examples in this topic assume that the grid is bound to the Orders table of the Northwind database, unless stated otherwise.
    The following example demonstrates how to recreate the default card-view header, which contains a ColumnManagerRow to the right of a GroupByControl.The following example demonstrates how to force the GroupByControl and ColumnManagerRow contained in a grid's fixed header section to occupy all the available width. By default, items in the fixed header and footer sections will only span across the width occupied by the columns.
    <Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
      <Grid.Resources>
        <xcdg:DataGridCollectionViewSource x:Key="cvs_orders"
                                           Source="{Binding Source={x:Static Application.Current},
                                                            Path=Orders}"/>
      </Grid.Resources>
      <xcdg:DataGridControl x:Name="OrdersGrid"
                            ItemsSource="{Binding Source={StaticResource cvs_orders}}">
        <xcdg:DataGridControl.View>
          <xcdg:CardView UseDefaultHeadersFooters="False">
            <xcdg:CardView.FixedHeaders>
    
             <DataTemplate>
               <DockPanel>
                 <!-- OneWay binding is used because we want the ColumnManagerRow's height to
                      follow what is defined by the GroupByControl. A FallbackValue
                      is specified so the initial measure pass has an acceptable minimal
                      value.-->
                 <xcdg:ColumnManagerRow DockPanel.Dock="Right"
                                        Height="{Binding ElementName=groupByControl,
                                                         Path=ActualHeight,
                                                         Mode=OneWay,
                                                         FallbackValue=60}"/>
                 <xcdg:GroupByControl x:Name="groupByControl"/>
               </DockPanel>
             </DataTemplate>
            </xcdg:CardView.FixedHeaders>
          </xcdg:CardView>
        </xcdg:DataGridControl.View>
      </xcdg:DataGridControl>
    </Grid>
    <Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
      <Grid.Resources>
        <xcdg:DataGridCollectionViewSource x:Key="cvs_orders"
                                           Source="{Binding Source={x:Static Application.Current},
                                           Path=Orders}"
                                           AutoCreateItemProperties="False">
          <xcdg:DataGridCollectionViewSource.ItemProperties>
            <xcdg:DataGridItemProperty Name="ShipCountry"/>
            <xcdg:DataGridItemProperty Name="ShipCity"/>
            </xcdg:DataGridCollectionViewSource.ItemProperties>
          </xcdg:DataGridCollectionViewSource>
         <Style TargetType="{x:Type xcdg:GroupHeaderControl}">
           <Setter Property="MinWidth"
                   Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}},
                                   Path=ActualWidth}"/>
         </Style>
         <Style TargetType="{x:Type xcdg:ColumnManagerRow}">
           <Setter Property="MinWidth"
                   Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}},
                                   Path=ActualWidth}"/>
         </Style>
        </Grid.Resources>
        <xcdg:DataGridControl x:Name="OrdersGrid"
                             ItemsSource="{Binding Source={StaticResource cvs_orders}}"/>
    </Grid>
    Inheritance Hierarchy

    System.Object
       System.Windows.Threading.DispatcherObject
          System.Windows.DependencyObject
             System.Windows.Media.Visual
                System.Windows.UIElement
                   System.Windows.FrameworkElement
                      System.Windows.Controls.Control
                         Xceed.Wpf.DataGrid.Row
                            Xceed.Wpf.DataGrid.ColumnManagerRow
                               Xceed.Wpf.DataGrid.MergedColumnManagerRow

    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

    See Also