Skip to main content
All docs
V24.2

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

CustomItemTextEventArgs.Details Property

Gets or sets the task details (in the timeline).

Namespace: DevExpress.XtraGantt

Assembly: DevExpress.XtraGantt.v24.2.dll

NuGet Package: DevExpress.Win.Gantt

#Declaration

public string Details { get; set; }

#Property Value

Type Description
String

The task details.

#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