将WPF TreeView转换为Menu
|
我在将此工作树视图转换为菜单时遇到麻烦。
此树视图正确显示。
<UserControl.DataContext>
<ObjectDataProvider ObjectType=\"{x:Type storage:Database}\"
MethodName=\"GetGroups\"/>
</UserControl.DataContext>
<UserControl.Resources>
<converters:PathToNameConverter x:Key=\"pathToNameConverter\" />
</UserControl.Resources>
<TreeView Name=\"TreeViewMain\" ItemsSource=\"{Binding Path=.}\">
<TreeView.Resources>
<HierarchicalDataTemplate DataType=\"{x:Type storage:File}\">
<TreeViewItem Header=\"{Binding Path=Name, Mode=TwoWay}\" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType=\"{x:Type storage:Group}\">
<TreeViewItem>
<TreeViewItem.Header>
<StackPanel Grid.Row=\"0\" Orientation=\"Horizontal\">
<Image Source=\"../Images/Core/16x16/Folder.png\" />
<TextBlock Text=\"{Binding Path=Name, Mode=TwoWay}\"/>
</StackPanel>
</TreeViewItem.Header>
<ItemsControl ItemsSource=\"{Binding Path=Groups}\" />
<ItemsControl ItemsSource=\"{Binding Path=Files}\" />
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
我将所有内容都更改为“菜单”,但它不起作用。有组名和图像,并带有指向右箭头的箭头,看起来好像正在工作,但是单击它不会展开。
<UserControl.DataContext>
<ObjectDataProvider ObjectType=\"{x:Type storage:Database}\"
MethodName=\"GetGroups\"/>
</UserControl.DataContext>
<Menu Name=\"MenuMain\" ItemsSource=\"{Binding Path=.}\">
<Menu.Resources>
<HierarchicalDataTemplate DataType=\"{x:Type storage:File}\">
<MenuItem Header=\"{Binding Path=Name, Mode=TwoWay}\" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType=\"{x:Type storage:Group}\">
<MenuItem>
<MenuItem.Header>
<StackPanel Grid.Row=\"0\" Orientation=\"Horizontal\">
<Image Source=\"../Images/Core/16x16/Folder.png\" />
<TextBlock Text=\"{Binding Path=Name, Mode=TwoWay}\" />
</StackPanel>
</MenuItem.Header>
<ItemsControl ItemsSource=\"{Binding Path=Groups}\" />
<ItemsControl ItemsSource=\"{Binding Path=Files}\" />
</MenuItem>
</HierarchicalDataTemplate>
</Menu.Resources>
</Menu>
我究竟做错了什么?
没有找到相关结果
已邀请:
1 个回复
烷刨画颠离
菜单绑定到具有所有属性(如页眉,图标等)的对象的简单集合。它们还具有包含子项的Items属性。 它并不是您要找的东西,但也许您可以修复它。我记得尝试过像您一样的方法,并且失败很严重。 Menu会自己生成MenuItem对象(并且您试图在其中添加另一个对象-您一定不能这样做,只需要设置其样式即可),这两个ItemsControls对我来说似乎有点怪异(尽管我了解您需要它们)。