このパターンを使用できますが、次のようにしようとすると、何かが欠けているに違いありませMenu
ん。TreeView
HeaderedItemsControl
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Page.Resources>
<HierarchicalDataTemplate x:Key="MenuItemTemplate" ItemsSource="{Binding XPath=foo}">
<AccessText Text="{Binding XPath=@a}" />
</HierarchicalDataTemplate>
<Style TargetType="HeaderedItemsControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type HeaderedItemsControl}">
<StackPanel>
<ContentPresenter ContentSource="Header"/>
<ItemsPresenter Margin="10,0,0,0" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<XmlDataProvider x:Key="RootXml" XPath="/root/foo">
<x:XData>
<root xmlns="">
<foo a="one">
<foo a="two" b="wow, two" />
<foo a="three" b="wow, three" />
<foo a="four" b="wow, four" />
</foo>
<foo a="one again">
<foo a="two others" b="wow, two others" />
<foo a="three the hard way" b="wow, three again" />
</foo>
</root>
</x:XData>
</XmlDataProvider>
</Page.Resources>
<StackPanel>
<HeaderedItemsControl
Header="My Foo List"
ItemTemplate="{Binding Source={StaticResource MenuItemTemplate}}"
ItemsSource="{Binding Source={StaticResource RootXml}}">
</HeaderedItemsControl>
</StackPanel>
</Page>
XamlPadX では、次のように表示されます。
My foo list
one
one again
ControlTemplate
データを正しく表示するには、何かを行う必要がありますか? それとも、もっと精巧な(または追加の)ものが必要HierarchicalDataTemplate
ですか?また、foo/@b
データをどのように表示しますか?