Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将菜单项资源绑定到递归数据结构_C#_Wpf_Binding_Menu_Itemssource - Fatal编程技术网

C# 将菜单项资源绑定到递归数据结构

C# 将菜单项资源绑定到递归数据结构,c#,wpf,binding,menu,itemssource,C#,Wpf,Binding,Menu,Itemssource,我有一个简单的数据结构,属性当然是依赖属性: class MenuData{ public string Header {get; protected set;} public ObservableCollection<MenuData> Items { get; protected set; } } ObservableCollection<MenuData> Menus {get; protected set;} 但是结果看起来完全错误,请注意突出

我有一个简单的数据结构,属性当然是依赖属性:

class MenuData{
    public string Header {get; protected set;}
    public ObservableCollection<MenuData> Items { get; protected set; }
}

ObservableCollection<MenuData> Menus {get; protected set;}
但是结果看起来完全错误,请注意突出显示太大和子菜单箭头

你能给我指出一个正确的方向吗?这样我就能成功了


谢谢你的帮助。

所以我终于明白了。答案是

<my:MenuElement ItemsSource="{Binding Menus}">
    <my:MenuElement.ItemTemplate>
        <DataTemplate>                
            <MenuItem Header="{Binding Header}">                    
                <!-- Try to add some sub-menus to see what it is going to look like. -->
                <MenuItem Header="A" />
                <MenuItem Header="A" />
                <MenuItem Header="A" />
                <MenuItem Header="A" />
            </MenuItem>
        </DataTemplate>
    </my:MenuElement.ItemTemplate>
</my:MenuElement>
class MenuElement: System.Windows.Controls.Menu 
{
    protected override DependencyObject GetContainerForItemOverride()
    {
        return new System.Windows.Controls.ContentPresenter();
    }
}