سؤال

I am trying to parse menu items from XML via XmlDataProvider, without luck. The "Add Item 2" menu appears, but only a blank item opens from that one as a submenu.

What am I doing wrong?

At my XAML I have:

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

And:

<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>

And in the XML:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <ItemTypes2>
        <MenuItems2>
            <MenuItem2 Header="First" />
            <MenuItem2 Header="Second" />
        </MenuItems2>
    </ItemTypes2>
</Configuration>
هل كانت مفيدة؟

المحلول

I think there is an issue with XPath in your MenuItem. It should be as follows:

<MenuItem Header="Add Item 2" ItemsSource="{Binding Source={StaticResource ItemTypes2}, XPath=MenuItems2/MenuItem2}">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top