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();
}
}