По-другому: (ну очень похоже, но немного по-другому)
В вашем окне Функция загрузки:
PageEntities db = new PageEntities();
TreeViewPages.ItemsSource = db.Page.Where(u=>u.Parent==null);
Создать новый файл Page.cs
public partial class Page {
public ObjectQuery<Page> LoadedChildren {
get {
var ret = Children;
if(ret.IsLoaded==false) ret.Load();
return ret;
}
}
}
В вашем XAML:
<TreeView Name="TreeViewPages">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemSource="{Binding LoadedChildren}">
<TextBlock Text="{Binding ShortTitle}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Это не проверено, но вы должны получить общее представление.