WPF - 来自XML的菜单项通过XmlDataProvider

时间:2013-05-07 10:33:44

标签: wpf xml menu datatemplate xmldataprovider

我试图通过XmlDataProvider从XML解析菜单项,没有运气。 将出现“添加项目2”菜单,但只有一个空白项目作为子菜单从该项目打开。

我做错了什么?

在我的XAML上我有:

<Window.Resources>
       <XmlDataProvider x:Key="ItemTypes2" Source="c:\Temp\Menu2.xml" XPath="Configuration/ItemTypes2" />
</Window.Resources>

<MenuItem Header="Add Item 2" ItemsSource="{Binding Source={StaticResource ItemTypes2}, XPath=MenuItems2}">
    <MenuItem.Resources>
        <DataTemplate DataType="MenuItem2">
            <MenuItem Header="{Binding XPath=@Header}" />
        </DataTemplate>
    </MenuItem.Resources>
</MenuItem>

在XML中:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <ItemTypes2>
        <MenuItems2>
            <MenuItem2 Header="First" />
            <MenuItem2 Header="Second" />
        </MenuItems2>
    </ItemTypes2>
</Configuration>

1 个答案:

答案 0 :(得分:1)

我认为您的MenuItem中存在XPath问题。它应该如下:

<MenuItem Header="Add Item 2" ItemsSource="{Binding Source={StaticResource ItemTypes2}, XPath=MenuItems2/MenuItem2}">