Skip to main content
All docs
V23.2

CustomItemTextEventArgs.Node Property

Gets the node that corresponds to the task displayed on the timeline.

Namespace: DevExpress.XtraGantt

Assembly: DevExpress.XtraGantt.v23.2.dll

NuGet Package: DevExpress.Win.Gantt

Declaration

public GanttControlNode Node { get; }

Property Value

Type Description
GanttControlNode

The node.

Remarks

The following example demonstrates how to specify a custom caption and description for tasks displayed on a timeline based on a condition:

Custom Timeline Item Text - WinForms Gantt Control

public Form1() {
    InitializeComponent();
    // Bind the Gantt control to a data source.
    ganttControl1.DataSource = TaskData.InitData();
    // Configures the Gantt control's mappings.
    ganttControl1.TreeListMappings.KeyFieldName = "Id";
    ganttControl1.TreeListMappings.ParentFieldName = "ParentId";
    ganttControl1.ChartMappings.StartDateFieldName = "StartDate";
    ganttControl1.ChartMappings.FinishDateFieldName = "EndDate";
    ganttControl1.ChartMappings.TimelineCaption = "Name";
    // Maps the Gantt control to a field in a data source with Boolean values that
    // specify which tasks to display on the timeline when the application starts.
    ganttControl1.ChartMappings.VisibleInTimelineFieldName = "ShowInTimeline";
    // Displays the timeline at the top of the Gantt control.
    ganttControl1.OptionsTimeline.TimelinePosition = DevExpress.XtraGantt.TimelinePosition.Top;
    ganttControl1.CustomTimelineItemText += GanttControl1_CustomTimelineItemText;
}
private void GanttControl1_CustomTimelineItemText(object sender, DevExpress.XtraGantt.CustomItemTextEventArgs e) {
    // Displays a common caption if no task caption is specified.
    e.Caption = string.IsNullOrEmpty(e.Caption) ? "Noname Task" : string.Format("Task: {0}", e.Caption);
    // Displays a value from the Description data field in the task details (if specified).
    string customDetails = (string)e.Node["Description"];
    e.Details = !string.IsNullOrEmpty(customDetails) ? customDetails : e.Details;
}
public class TaskData {
    public TaskData(int id) {
        this.id = id;
    }
    int id;
    public int Id {
        get { return id; }
    }
    public bool ShowInTimeline { get; set; } = false;
    public int ParentId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public static List<TaskData> InitData() {
        return new List<TaskData>() {
            new TaskData(0){ Name = "Task A", ParentId = 0, StartDate = new DateTime(2023, 3, 1), EndDate = new DateTime(2024, 3, 31) },
            new TaskData(1){
                Name = "Task B",
                ParentId = 0,
                StartDate = new DateTime(2023, 3, 1),
                EndDate = new DateTime(2023, 7, 1),
                ShowInTimeline = true,
                Description = "The description of Task B." },
            new TaskData(2){ ParentId = 0, StartDate = new DateTime(2023, 7, 1), EndDate = new DateTime(2023, 11, 1) }
        };
    }
}
See Also