The reason why this isn't working is that you are only specifying the DataTemplate for the TreeView. Since the TreeViewItems that it generates are also ItemsControls, they would need to have the ItemTemplate set as well.
The easiest way to achieve what you are hoping for is to put the HierarchicalDataTemplate in the resources of the TreeView (or any of its parent visuals), and set the DataType of the HierarchicalDataTemplate so it is applied to all of your items.
In your container's declaration (most likely window), you need to define a mapping to the namespace where page is defined.
e.g.
<Window ...
xmlns:local="clr-namespace:NamespaceOfPageClass;assembly=AssemblyWherePageIsDefined">
<TreeView Margin="12" Name="TreeViewPages" ItemsSource="{Binding}" />
<TreeView.Resources>
<HierarchicalDataTemplate DataType=”{x:Type local:Page}” ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Path=ShortTitle}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Abe Heidebrecht
2008-11-07 17:57:46