Unbound Mode
- 4 minutes to read
You can use a GanttControl if it is not bound to a data source. This mode requires that you create columns and nodes manually.
Tip
If you bind the control to a data source, it creates columns and nodes automatically based on the data source. See the following topic for more information: Bind to Data Source.
Add Columns and Nodes
You can create columns and nodes in the designer or in code. See the following topic for more information about the designer: Tree List Designer.
In code, call the Add, AddRange, AddField, or AddVisible method to add columns to the Columns collection. To create nodes, use an AppendNode method overload. Note that the DataSource property must be set to null (Nothing in VB.NET) to use the control in unbound mode.
using DevExpress.XtraTreeList.Data;
var column = ganttControl1.Columns.AddField("ID");
column.UnboundDataType = typeof(int);
column = ganttControl1.Columns.AddVisible("StartDate");
column.UnboundDataType = typeof(DateTime);
column = ganttControl1.Columns.AddVisible("FinishDate");
column.UnboundDataType = typeof(DateTime);
column = ganttControl1.Columns.AddField("Predecessors");
column.UnboundDataType = typeof(string);
var startDate = new DateTime(2021, 2, 15, 8, 0, 0);
var finishDate = new DateTime(2021, 2, 15, 17, 0, 0);
var rootNode = ganttControl1.AppendNode(new object[] { 0, startDate, finishDate, string.Empty }, null);
ganttControl1.AppendNode(new object[] { 1, startDate, finishDate, string.Empty }, rootNode);
ganttControl1.AppendNode(new object[] { 2, startDate, finishDate, "1" }, rootNode);
ganttControl1.AppendNode(new object[] { 3, startDate, finishDate, "2" }, rootNode);
ganttControl1.ScheduleFromStartDate(startDate);
Columns Specific to the Gantt Control
You can add any columns to a control but specific columns are required to display tasks in the chart area. For example, a task’s start and finish date are required to display the task on the timescale.
The table below contains columns (fields) that you can add to the control and their default names. You can either use default names or specify custom ones.
Column (Field) | Description | Default Column (Field) Name | Property that Specifies the Column (Field) Name |
---|---|---|---|
Start Date | A column that contains a task’s start date. | “StartDate” | |
Finish Date | A column that contains a task’s finish date. You can use either Finish Date or Duration. | “FinishDate” | |
Duration | A column that contains a task’s duration. You can use either Duration or Finish Date. | ||
Text | A caption displayed next to a task in the chart. Note that this column does not have a default name. You must specify it to display task captions in the chart. | ||
Tooltip Text | A column that contains a task’s caption in tooltips. Note that this column does not have a default name. You must specify it to display task captions in tooltips. | ||
Progress | A column that contains a task’s completion percentage. | “Progress” | |
Baseline Start Date | A column that contains a baseline’s start date. | “BaselineStartDate” | |
Baseline Finish Date | A column that contains a baseline’s finish date. You can use either Baseline Finish Date or Baseline Duration. | “BaselineFinishDate” | |
Baseline Duration | A column that contains a baseline’s duration. You can use either Baseline Duration or Baseline Finish Date. | ||
Key | A column that contains a node’s unique identifier. Use this identifier to specify predecessors. | “ID” | |
Predecessors | A column that contains a task’s predecessors. The column should contain predecessor keys separated by space, comma, or semicolon (‘ ‘, ‘,’ ‘;’). This column allows you to specify finish-to-start dependencies only. Also, note that you cannot specify a time lag between dependent tasks. | “Predecessors” |