Wpf 数据绑定到菜单的多种对象类型
我正在开发一个WPF项目,下面是我的菜单数据模型的代码Wpf 数据绑定到菜单的多种对象类型,wpf,data-binding,menu,telerik,hierarchicaldatatemplate,Wpf,Data Binding,Menu,Telerik,Hierarchicaldatatemplate,我正在开发一个WPF项目,下面是我的菜单数据模型的代码 class NavigationMenu { public abstract class MenuBase { public MenuBase() { } public MenuBase(string title) { MenuTitle = tit
class NavigationMenu
{
public abstract class MenuBase
{
public MenuBase()
{
}
public MenuBase(string title)
{
MenuTitle = title;
}
public Guid MenuId { get; set; }
public string MenuTitle { get; set; }
public string ImageResourceName { get; set; }
}
public class MenuItem : MenuBase
{
public MenuItem()
{
}
public MenuItem(string title)
: base(title)
{
}
public string View { get; set; }
}
public class MenuCategory : MenuBase
{
public MenuCategory()
{
MenuItems = new ObservableCollection<MenuItem>();
}
public MenuCategory(string title)
: base(title)
{
MenuItems = new ObservableCollection<MenuItem>();
}
public MenuCategory(string CategoryTitle, ObservableCollection<MenuItem> pMenuItems)
: base(CategoryTitle)
{
this.MenuItems = pMenuItems;
}
public ObservableCollection<MenuItem> MenuItems { get; set; }
}
public class MainMenuItem : MenuBase
{
public MainMenuItem()
{
MenuCategories = new ObservableCollection<MenuCategory>();
}
public MainMenuItem(string title)
: base(title)
{
MenuCategories = new ObservableCollection<MenuCategory>();
}
public ObservableCollection<MenuCategory> MenuCategories { get; set; }
}
}
我遇到的问题是,MenuCategory显示成功,但没有显示
MenuCategory
中的MenuItems
。很明显,我没有绑定菜单项
,而是绑定菜单项
。但是我不知道如何在上面的数据模板中绑定MenuItems
?有什么想法吗?将模型类绑定到数据模板
<HierarchicalDataTemplate DataType="{x:Type NavigationMenu.MenuCategory }" ItemsSource="{Binding Path=MenuItems }">
<StackPanel Height="Auto">
<Image MaxWidth="32" MaxHeight="32" Source="{Binding Path=ImageResourceName}" />
<TextBlock HorizontalAlignment="Center">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConv}">
<Binding Path="MenuId"></Binding>
<Binding Path="MenuTitle"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type NavigationMenu.MenuItem }">
<StackPanel Height="Auto">
//....
<TextBlock HorizontalAlignment="Center" Text="{Binding View}"/>
//....
</StackPanel>
</HierarchicalDataTemplate>
//....
//....
<HierarchicalDataTemplate DataType="{x:Type NavigationMenu.MenuCategory }" ItemsSource="{Binding Path=MenuItems }">
<StackPanel Height="Auto">
<Image MaxWidth="32" MaxHeight="32" Source="{Binding Path=ImageResourceName}" />
<TextBlock HorizontalAlignment="Center">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConv}">
<Binding Path="MenuId"></Binding>
<Binding Path="MenuTitle"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type NavigationMenu.MenuItem }">
<StackPanel Height="Auto">
//....
<TextBlock HorizontalAlignment="Center" Text="{Binding View}"/>
//....
</StackPanel>
</HierarchicalDataTemplate>