Just use whatever XAML you need. One possibility:
<StackPanel go:Node.LocationSpot="TopCenter">
<Line X1="0" Y1="0" X2="0" Y2="150" Stroke="Salmon" StrokeThickness="2" HorizontalAlignment="Center" />
<TextBlock Text="2011-12-13" Foreground="Salmon" HorizontalAlignment="Center" />
</StackPanel>
If you want a variable number of these to be data-bound to data in your model, just put this XAML in a DataTemplate that you put into a DataTemplateDictionary as your Diagram.NodeTemplateDictionary.
If you just want one of these and not have it be part of your model, wrap this XAML in a go:Node and add it to your Diagram.PartsModel. Read the GoXamIntro.pdf about unbound nodes.
Thanks walter
Some times vertical line displayed on backgroundgo:Part.LayerName=“Foreground”
You might also want to consider other things, such as:
go:Part.LayoutId=“None” if you are using Diagram.Layout
go:Part.Selectable=“False” if you don’t want users to play with the line
go:Node.Avoidable=“False” if you have links with Route.Routing=“AvoidsNodes” and want to ignore the line
go:Part.InDiagramBounds=“False” if you don’t want the line to be considered in determining the Diagram.Panel.DiagramBounds
… and maybe other properties, depending on how you want the line to behave.
   go:Part.LayerName="Foreground"
will definitely put that Part in front of anything that is in the default layer.
The kind of model does not matter.