Prerequisite Knowledge DataGrid Fundamentals: Views and Themes Overview |
The Tableflow™ view is represented by the TableflowView class. It differs greatly from the TableView class from which it derives. It provides a rich, fluid, and high performance user experience, featuring a capabilities such as inertial smooth scrolling and animated full-column reordering, which mimic the physics of real-life movement. The TreeGridflowView class, which is derived from TableflowView, displays details in a tree-like structure under the main column at the master level.
The rows in the Tableflow™ view flow smoothly into the viewport, rather than simply popping into existence. This lets the end-user more easily see the data as it moves into view. Furthermore, smooth scrolling is supported when the data source is virtualized, which further improves the user experience.
The behavior of smooth scrolling is controlled through the RowFadeInAnimationDuration and ScrollingAnimationDuration properties, which represent the duration of these effects in milliseconds.
The headers, footers (in groups and in master/detail), and parent rows in the viewport can be set so that they are "sticky". That is, while the end-user scrolls through data, the element is pinned and remains visible at the top or the bottom of the viewport until the data contained in that section has moved beyond the viewport. This is true whether the end-user is using the keyboard or the mouse (scrollbar or scroll wheel).
The following table lists the properties that control this aspect of the Table.
Table 1: Sticky properties
Property | Description |
---|---|
AreFootersSticky | Gets or sets a value indicating whether the view's footers are sticky. |
AreGroupFootersSticky | Gets or sets a value indicating whether the view's group footers are sticky. |
AreGroupHeadersSticky | Gets or sets a value indicating whether the view's group headers are sticky. |
AreHeadersSticky | Gets or sets a value indicating whether the view's headers are sticky. |
AreParentRowsSticky | Gets or sets a value indicating whether the view's parent rows are sticky. |
When the IsAnimatedColumnReorderingEnabled property is set to true, dragging a column header results in the entire column being visible as it is moved, rather than simply the column header as is the case with TableView. This again improves the user's experience by letting him or her see what is being moved.
When the AreGroupsFlattened property is set to true, all groups are shifted to the left in the viewport and are aligned with the top-most group (i.e., they are not indented).
The GroupNavigationControl is displayed when the mouse pointer hovers over a group name in the group header. When clicked the group will be moved to the top of the viewport.
It is active by default and cannot be disabled.
Note: The GroupNavigationControl replaces the GroupNavigationButton.
The TreeGridflowView class, which is derived from TableflowView, displays details in a tree-like structure under the main column at the master level. The TreeGridflowView class shares most of the characteristics of the TableflowView and TableView classes from which it is derived. There are however several differences in its behavior.
Only item properties and columns defined at the first (master) level are used to define the columns presented in the datagrid: the extra item properties and columns defined in the details will not be used.
Sorting, reordering, and resizing are restricted to the master level: Other levels simply synchronize with the master level. Even if a ColumnManagerRow is displayed in details, only the the ColumnManagerCell of the first level (master) allows sorting, dragging, or resizing. Furthermore, the column marked as the main column (ColumnBase.IsMainColumn is set to true) cannot be dragged and no column can be moved to the left of it (it is always the first column).
Sorting applied to the first level is applied to the other (detail) levels.
By default, the headers and footers of details in this view are empty. There is no ColumnManagerRow, unlike in TableflowView.
If the Synonym property of DataGridItemPropertyBase is not set, the default behavior is to associate the DataGridItemPropertyBase instances with the same name (Name). The purpose of the Synonym property is to allow an association of DataGridItemPropertyBase instances that do not share the same name. Note that in order for the DataGridItemPropertyBase instances to be associated and aligned, they must be of the same data type (.DataType).
The TreeGridflowView class must not be seen as a view that aligns columns but rather as a view that aligns properties.