GanttControl.CustomTimelineItemText Event
Allows you to specify a custom caption and details for tasks displayed on the timeline.
Namespace: DevExpress.XtraGantt
Assembly: DevExpress.XtraGantt.v24.2.dll
Declaration
[DXCategory("Events")]
public event GanttTimelineCustomItemTextEventHandler CustomTimelineItemText
Event Data
The CustomTimelineItemText event's data class is CustomItemTextEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Caption | Gets or sets the task caption (in the timeline). |
Details | Gets or sets the task details (in the timeline). |
Node | Gets the node that corresponds to the task displayed on the timeline. |
Task | Gets the view information about the task (on the timeline). |
Remarks
The Gantt control fires the CustomTimelineItemText
event for each task displayed on the timeline and allows you to change its caption and details based on a condition. Use the e.Caption and e.Details properties to specify the caption and details of a task. The e.Task property returns the task.
The following example demonstrates how to specify a custom caption and description for tasks displayed on a timeline based on a condition:
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) }
};
}
}