Assembly: Dapfor.Net (in Dapfor.Net.dll) Version: 2.10.3.24917 (2.10.3.24917)
Syntax
C# |
---|
public int ChildIndex { get; set; } |
Visual Basic |
---|
Public Property ChildIndex As Integer Get Set |
Visual C++ |
---|
public: property int ChildIndex { int get (); void set (int value); } |
F# |
---|
member ChildIndex : int with get, set |
Property Value
Type: Int32Index in Grid.Nodes or parent Row.Children.
Remarks
When you modify data in real time, you often call Row.Update() method. It helps the grid to perform the required operations to define new row position, compliance with filtering, grouping and hierarchy sorting criteria, etc. In addition to automatically moving a row, the grid provides a convenient API for changing its position.
The grid has two row indexing system. Rows performs linear indexing of visible rows in a grid without regard to hierarchy. It means that this collection contains all visible (not filtered and non-collapsed by parent) rows. VisibleIndex property specifies position of a visible row in Rows. The second time of indexing is related to hierarchical structure of the grid. Rows at the first hierarchy level can be accessed with Grid.Nodes property. This collection contains both visible and invisible rows that are located on the same hierarchy level. Every row may contain child rows that can be accessed via Children property. Neither filtering, nor visibility affect row presence in this collection. ChildIndex property defines hierarchical position of a row If the row is on the top level, it is in Nodes, otherwise it is in parent Children container. The row also has VisibleChildren container that contains only visible children on the same hierarchy level. You can use VisibleChildIndex property to determine Row position in VisibleChildren of the parent.
One row can be present in different containers, including Grid.Rows, Grid.Nodes, Row.Children, etc. Containers organize grid structure and enable precise definition of data location. For hierarchies the grid provides a convenient API that can be used to determine parent, children and adjacent visible rows. The list of most frequent methods and properties used for data indexing is provided below.
- Grid.Rows - Collection of all visible rows in the grid.
- Grid.Nodes - Collection of both visible and invisible rows at the top hierarchy level.
- Row.Children - Collection of both visible and invisible children.
- Row.VisibleChildren - Collection of visible children on the same hierarchy level.
- Row.Parent - Parent row or null if the current row is on the top hierarchy level.
- Row.VisibleIndex - Row position in Grid.Rows
- Row.ChildIndex - Row position in Grid.Nodes or parent Row.Children
- Row.VisibleChildIndex - Row position in parent Row.VisibleChildren
- Row.NextVisible - Next visible row in parent Row.VisibleChildren container
- Row.PrevVisible - Previous visible row in parent Row.VisibleChildren container
- Row.FirstVisibleChild - First visible child
- Row.LastVisibleChild - Last visible child
- Grid.Rows.TopVisibleRow - The first row in visible area of the grid
- Grid.Rows.BottomVisibleRow - The last row that is at least partially visible in the visible area of the grid
- Grid.Rows.BottomFullyVisibleRow - The last fully visible row in the visible area of the grid
Considering all the above, you may move rows with Row.ChildIndex only if the grid is not sorted. This property has been selected because it defines row position in the grid disregarding hierarchy and visibility of previous rows.
Copy | |
---|---|
public void MoveToTop(Row row) { row.ChildIndex = 0; } public void MoveToBottom(Row row) { Row parent = row.Parent; row.ChildIndex = parent != null ? parent.Children.Count - 1 : row.Grid.Nodes.Count - 1; } |