Namespace Syncfusion.Windows.Controls.VirtualTreeView
Classes
TreeColumn
The tree column with appearance and mapping information for the cells in the column to items in the tree nodes. |
TreeColumns
A collection of TreeColumn objects. The collection implements the ILineSizeHost interface and VirtualTreeView assigns the collection to the ColumnWidthsProvider. |
TreeControlRenderStyles
Provides routines for managing cell styles (TreeRenderStyleInfo) of rendered cells that have been scrolled into view. An instance of this class can be accessed with the RenderStyles property of a VirtualTreeView. |
TreeLevel
A tree level holds default cell style appearance for cells of this level. |
TreeLevels
A collection of TreeLevel objects. |
TreeModel
The TreeModel maintains a hierarchical collection of expandable TreeNode items. A flattened representations of the hierarchy of nodes can be accessed through the VisibleNodes property where each visible node is mapped to a row index and vice versa. TreeNodesFlattenedList also implements ILineSizeHost and the VirtualTreeView assigns it to RowHeightsProvider in order to be able to pixel scroll through visible and expanded nodes. Each node can have a unique height but a default height for all nodes can be set with the DefaultHeight property. Each node also maintains its expansion state and when collapsing, expanding a grand parent node all expansion state of child elements are remembered. The NodeItemProperties property can hold a collection of PropertyDescriptors of the underlying data source. MappingName identifies properties in this collection so that cells can display values from the Data of a TreeNode. |
TreeNode
A tree node with child nodes and default cell appearance. Each node can have multiple ChildNodes. A node can have a Data object which contents are displayed by a VirtualTreeView in multiple columns whereas each column identifies the property displayed in the cell with the MappingName. The GetNestedHeight() method returns the height of all nested child nodes and GetNestedRows() returns the number of visible nested nodes. You can check with the IsPopulated property whether child nodes have been populated. Only the visible nodes need to be populated. You can listen to the tree controls NodeExpanded event and populate child nodes on demand when this event is raised. |
TreeNodeEventArgs
Provides event data for TreeNode events. |
TreeNodeEventHandler
An event handler for TreeNode events. |
TreeNodes
A collection of TreeNode elements. The collection maintains both a list of nodes and a binary tree collection with height of nodes and number of rows. When adding, removing or changing nodes this collection ensures the binary tree collection is kept in sync with changes. The TreeNodes collection is accessed through the ChildNodes property of a TreeNode. TreeNode gets the counters from this collection when determining the total height of nested nodes and also the number of visible nested nodes. |
TreeNodesEnumerator |
TreeNodesFlattenedList
TreeNodesFlattenedList provides flattened representations of the hierarchy of nodes in a TreeModel. The flattened list can be accessed through the VisibleNodes property and each visible node is mapped to a row index and vice versa. TreeNodesFlattenedList also implements ILineSizeHost and the VirtualTreeView assigns it to RowHeightsProvider in order to be able to pixel scroll through visible and expanded nodes. Each node can have a unique height but a default height for all nodes can be set with the DefaultHeight property. Each node also maintains its expansion state and when collapsing, expanding a grand parent node all expansion state of child elements are remembered. |
TreeNodesScrollAxis
TreeNodesScrollAxis provides support for vertical pixel scrolling through nodes in a TreeModel of a VirtualTreeView with its ScrollRows property. The axis provides the mapping between a row index or pixel position in the VirtualTreeView and the TreeNodes and vice versa. The TreeNodes maintain their IsExpanded state and also keep track of the height of themselves and their child nodes in a TreeTable that counts the number of nested child nodes and their height. The axis listens to scrollbar events, resizing and hiding of nodes and updates scrollbar properties with setting calculated from header and footer size and total size of lines in body. |
TreePrepareRenderCellEventArgs
Provides event data for the PrepareRenderCell event of a VirtualTreeView. |
TreePrepareRenderCellEventHandler
An event handler for the PrepareRenderCell event of a VirtualTreeView. |
TreeRenderStyleInfo
The cell render style information for a cell inside the VirtualTreeView. TreeRenderStyleInfo is created at runtime before cells are arranged in the tree control and you can change its settings with the PrepareRenderCell event of the tree control. Changes made to this style's properties will only be made for rendering the style and will not be commited back to the tree node. TreeRenderStyleInfo is bound to the VirtualTreeView and provides a public property to the get access to it. The base class TreeStyleInfo provides properties to access also the TreeNode, TreeColumn, TreeLevel and TreeModel the style is bound to. When making changes to the style that should be written back to the data store you should make the changes in the ModelStyle. TreeRenderStyleInfo.ModelStyle will fire Changed notifications that a TreeNode can then react to (or ignore if no mechanism for saving changes back has been implemented.) |
TreeRenderStyleInfoDictionary
A class that emulates a Dictionary API and contains TreeRenderStyleInfo objects. Internally rows are held in a dictionary and each row has a dictionary of cells. The class also provides support for adding, removing and moving rows and columns. |
TreeStyleInfo
Maintains appearance and value for a cell in a VirtualTreeView. The style object also provides shortcut properties to access the TreeModel, TreeNode, Column, Level and CellRowColumnIndex the cell style represents. |
TreeStyleInfoIdentity
Holds the tree node, column and cell row column index a TreeStyleInfo was created for and implements the inheritance mechanism for base styles. |
TreeStyleInfoStore
Provides storage for the TreeStyleInfo object. |
TreeVirtualizingCellRenderer<T>
TreeVirtualizingCellRenderer is an abstract base class for cell renderers that need live UIElement visuals displayed in a cell. You can derive from this class and provide the type of the UIElement you want to show inside cells as type paramater. The class provides strong typed virtual methods for initializing content of the cell and arranging the cell visuals. See TreeVirtualizingCellRendererBase<T> for more details. The idea behind this class is to provide a place where we can add general code that should be shared for all cell renderers in the tree derived from TreeVirtualizingCellRendererBase. While this class does at the moment not add meaningfull functionality to TreeVirtualizingCellRendererBase we created this extra layer of inheritance to make it easy to share code for the TreeVirtualizingCellRendererBase base class between grid, tree and common assemblies and keep tree/grid control specific code out of the base class. It is currently not possible with C# to the base class as template type parameter. This is the reason for this copy/paste approach for the codebase for the base class of this class. |
TreeVirtualizingCellRendererBase<T>
VirtualizingCellRendererBase is an abstract base class for cell renderers that need live UIElement visuals displayed in a cell. You can derive from this class and provide the type of the UIElement you want to show inside cells as type parameter. The class provides strong typed virtual methods for initializing content of the cell and arranging the cell visuals. The class manages the creation of cells UIElement objects when the cell is scrolled into view and also unloading of the elements. The class offers an optimization in which elements can be recycled when AllowRecycle is set. In this case when a cell is scrolled out of view it is moved into a recycle bin and the next time a new element is scrolled into view the element is recovered from the recycle bin and reinitialized with the new content of the cell. Another optimization is support for cells rendering themselves directly to the drawing context. When SupportsRenderOptimization is true the UIElement will only be created when the user moves the mouse over the cell or if the UIElement is needed for other reasons. After a UIElement was created the virtual methods Syncfusion.Windows.Controls.VirtualTreeView.TreeVirtualizingCellRendererBase`1.WireUIElement(`0) and Syncfusion.Windows.Controls.VirtualTreeView.TreeVirtualizingCellRendererBase`1.UnwireUIElement(`0) are called to wire any event listeners. Updates to appearance and content of child elements, creation and unloading of elements will not trigger ArrangeOverride or Render calls in parent canvas. In Grid and Tree control you should not derive from this class. Instead you should derive from the GridVirtualizingCellRendererBase and TreeVirtualizingCellRendererBase classes. These classes are the exact same code base as this class with the only difference that they derive from GridCellRendererBase and TreeCellRenderer base classes instead. It is currently not possible with C# to the base class as template type parameter. This is the reason for this copy/paste approach for the codebase of this class. |
VirtualTreeView
The VirtualTreeView displays a hierarchical collection of expandable TreeNode items maintained by a TreeModel. A flattened representations of the hierarchy of nodes can be accessed through the VisibleNodes property of the Model where each visible node is mapped to a row index and vice versa. TreeNodesFlattenedList also implements ILineSizeHost and the VirtualTreeView assigns it to RowHeightsProvider in order to be able to pixel scroll through visible and expanded nodes. VirtualTreeView returns cell contents with the GetRenderStyleInfo(RowColumnIndex) method which returns a TreeRenderStyleInfo object. Each cell is associated with a Syncfusion.Windows.Controls.VirtualTreeView.TreeCellRenderer object which provides methods for measuring, arranging and drawing contents of a cell. The VirtualTreeView implements the OnArrangeContent(Size) and System.Windows.UIElement.OnRender(System.Windows.Media.DrawingContext) methods. Within implementation of the OnArrangeContent method each cells UIElement children are placed on the controls area. A cell renderer can also be without any UIElement children and instead draw all its contents directly to the DrawingContext of the VirtualizingCellsControl when the System.Windows.UIElement.OnRender(System.Windows.Media.DrawingContext) method is executed. For a cell renderer it is also possible to do both: Arrange UIElements on the controls area and draw additional contents in its render area. There are also various optimization techniques that can be implemented with the renderer and are discussed in the ICellRenderer overview. The virtualization of UIElement children of cell renderers is implemented in the arrange cells code. At the time a cell is placed the cell renderer is called to create and intialize the UIElement children. When a cell is scrolled out of view the cell renderer is called to unload the UIElement children. A cell renderer can decide whether to unload a UIElement, keep it alive or move it to a recycle bin and reuse it later. The main logic of this code is implemented by the TreeVirtualizingCellRendererBase<T> class which contains more detailed discussion about this feature. |