GanttView.CalculateSummaryTaskProgress Event
Occurs when the summary task or one of its children is scheduled and allows you to calculate summary task progress with custom logic. This is a routed event.
Namespace: DevExpress.Xpf.Gantt
Assembly: DevExpress.Xpf.Gantt.v24.1.dll
NuGet Package: DevExpress.Wpf.Gantt
Declaration
public event EventHandler<CalculateSummaryTaskProgressEventArgs> CalculateSummaryTaskProgress
Event Data
The CalculateSummaryTaskProgress event's data class is CalculateSummaryTaskProgressEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Handled | Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs. |
Node | Gets the currently processed summary task. |
OriginalSource | Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs. |
Progress | Gets or sets the currently processed summary task’s progress. |
RoutedEvent | Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs. |
Source | Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs. |
The event data class exposes the following methods:
Method | Description |
---|---|
InvokeEventHandler(Delegate, Object) | When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs. |
OnSetSource(Object) | When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs. |
Remarks
Use the event arguments’ CalculateSummaryTaskProgressEventArgs.Node property to get the currently processed summary task.
The event arguments’ CalculateSummaryTaskProgressEventArgs.Progress property allows you to set a custom progress value.
Example
The code sample below demonstrates how to calculate summary task progress according the child tasks’ progress and their weight stored in the Tag property.
gantt.View.CalculateSummaryTaskProgress += (sender, e) => {
e.Progress = 0.0;
foreach(var task in e.Node.Nodes.Select(x => (GanttTask)x.Content)) {
var taskWeight = (double)task.Tag;
e.Progress += taskWeight * task.Progress;
}
e.Handled = true;
};