New to Telerik UI for WPFStart a free 30-day trial

Iterate Over the Diagram Items

Updated on Sep 24, 2025

RadDiagram provides 3 collections that store the DiagramItems - "Items", "Shapes" and "Connections"

Diagram Items Collections

Below you can see a description of the 3 collections:

  • RadDiagram.Items - inherits from Telerik.Windows.Diagrams.Core.DiagramItemCollection. The DiagramItemCollection inherits from System.Collections.ObjectModel.ObservableCollection. This mean that you are able to add everything in the Items collection. For example, if you add a Button in the Items, the ItemContainerGenerator of the RadDiagram will create a RadDiagramShape which wraps the Button and will add the generated shape in the Shapes collection.

  • RadDiagram.Shapes - inherits from Telerik.Windows.Diagrams.Core.ShapeCollection. The ShapeCollection inherits from System.Collections.ObjectModel.ReadOnlyCollection <Telerik.Windows.Diagrams.Core.IShape>

  • RadDiagram.Connections - inherits from Telerik.Windows.Diagrams.Core.ConnectionCollection. The ConnectionCollection inherits from System.Collections.ObjectModel.ReadOnlyCollection <Telerik.Windows.Diagrams.Core.IConnection>

  • Iterating Over Shapes or Connections

    Here you can see a possible way to iterate the Shapes or Connection of the RadDiagram:

    C#
    	this.diagram.Shapes.ToList().ForEach(x =>
    	{
    	  //your custom logic goes here
    	  (x as RadDiagramShape).Content = "Shape";
    	});

    Extension Methods

    The RadDiagram exposes two extension methods which you can use to iterate through the incoming and outgoing connections of a shape:

    • public static IEnumerable GetOutgoingConnectionsForShape(this IGraph graph, IShape shape)

    • public static IEnumerable GetIncomingConnectionsForShape(this IGraph graph, IShape shape)

    In order to take advatnage of these methods you need to add a using statement for the Telerik.Windows.Diagrams.Core namespace in your code-behind file. Then you'll be able to access both methods through a RadDiagram instance:

    C#
        using Telerik.Windows.Diagrams.Core;
        ...
        xDiagram.GetOutgoingConnectionsForShape(shape);
        xDiagram.GetIncomingConnectionsForShape(shape);

    See Also

In this article
Diagram Items Collections
Not finding the help you need?
Contact Support