C# 如何在WPF中实现动态嵌套的侧栏菜单?
我想在WPF中实现一个侧栏作为用户控件。我想从数据库动态加载侧栏的内容。我可以添加任何菜单,我可以删除任何菜单,我可以更改数据库中的嵌套级别。有没有一种方法可以在WPF中使用XAML和C#实现这一点 我的菜单课是这样的C# 如何在WPF中实现动态嵌套的侧栏菜单?,c#,wpf,xaml,sidebar,self-referencing-table,C#,Wpf,Xaml,Sidebar,Self Referencing Table,我想在WPF中实现一个侧栏作为用户控件。我想从数据库动态加载侧栏的内容。我可以添加任何菜单,我可以删除任何菜单,我可以更改数据库中的嵌套级别。有没有一种方法可以在WPF中使用XAML和C#实现这一点 我的菜单课是这样的 public class Menus { public string MenuName {get;set;} public string MenuURL {get;set;} public List<Menus> Children {get
public class Menus
{
public string MenuName {get;set;}
public string MenuURL {get;set;}
public List<Menus> Children {get;set;}
public Menus()
{
Children = new List<Menus>();
}
}
公共类菜单
{
公共字符串菜单名{get;set;}
公共字符串MenuURL{get;set;}
公共列表子项{get;set;}
公共菜单()
{
Children=新列表();
}
}
我尝试过各种组合,但没有运气
输出应该是这样的
- 主菜单1
- 子菜单1.1
- 子菜单1.2
- 子菜单1.2.1
- 主菜单2
- 子菜单2.1
- 子菜单2.2
- 子菜单2.1
因此,我可以从数据库中添加任意数量的嵌套行为。我是WPF的新手,所以我不知道很多方法。如果有任何直接的方法可以实现这一点,那么这将有助于查看,您可以将
TreeView
与hierarchycaldatatemplate
一起使用。我尝试过TreeView,它可以完成动态嵌套部分,但它看起来肯定不像“侧栏”。另一件事是我想在关闭侧边栏时控制节点的展开和折叠;但是treeview本身没有isExpander属性。treeview确实有它,但我不知道如何将它与treeview一起使用,仍然可以获得所需的结果。至于treeview的外观,您需要自定义treeview、treeview和相关控件的样式。对于展开/折叠,可以使用treevieItem.IsExpanded
属性。