Xceed Toolkit Plus for WPF v4.6 Documentation
DataRow Class
Members  Example 


Xceed.Wpf.DataGrid Assembly > Xceed.Wpf.DataGrid Namespace : DataRow Class
Specialization of the Row that represents a row that contains a collection of DataCells. DataRows are the visual representation of the data items that are displayed in a grid's viewport.
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 DataRow 
   Inherits Row
'Usage
 
Dim instance As DataRow
[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 DataRow : 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 alternate the appearance of data row styles using the IndexToOddConverter.
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
  <Grid.Resources>


    <xcdg:IndexToOddConverter x:Key="rowIndexConverter"/>   

    <Style TargetType="{x:Type xcdg:DataRow}">
      <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
                                       Path=(xcdg:DataGridVirtualizingPanel.ItemIndex),
                                       Converter={StaticResource rowIndexConverter}}"
                               Value="True">
          <Setter Property="Background">
            <Setter.Value>
              <SolidColorBrush Color="LightGray"
                               Opacity="0.1"/>
            </Setter.Value>
          </Setter>
        </DataTrigger>
      </Style.Triggers>
    </Style>
    <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>
</Grid>
The following example demonstrates how to changed the background color of a DataRow according to the value of one of its cells using DataTriggers.
<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}"/>
   <Style TargetType="{x:Type xcdg:DataRow}">
     <Style.Triggers>
       <DataTrigger Binding="{Binding Path=[EmployeeID]}" Value="1">
         <Setter Property="Background" Value="Pink"/>
       </DataTrigger>
       <DataTrigger Binding="{Binding Path=[EmployeeID]}" Value="3">
         <Setter Property="Background" Value="Blue"/>
       </DataTrigger>
     </Style.Triggers>
   </Style>
 </Grid.Resources>
<xcdg:DataGridControl x:Name="OrdersGrid"
                        ItemsSource="{Binding Source={StaticResource cvs_orders}}"/>
</Grid>
The following example demonstrates how to subscribe the MouseEnter and MouseLeave events of each DataRow using EventTriggers in an implicit style.
<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}"/>

    <Style TargetType="{x:Type xcdg:DataRow}">
      <EventSetter Event="MouseEnter"
                   Handler="DataRowMouseEnter"/>

      <EventSetter Event="MouseLeave"
                   Handler="DataRowMouseLeave"/>
    </Style>
  </Grid.Resources>
     
  <xcdg:DataGridControl x:Name="OrdersGrid"
                        ItemsSource="{Binding Source={StaticResource cvs_orders}}"
                        View="TableView.LunaNormalColorTheme"/>
</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.DataRow

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

Reference

DataRow Members
Xceed.Wpf.DataGrid Namespace

DataGrid Fundamentals

Other_Classes.html