gpt4 book ai didi

wpf - 将 ContextMenu 项动态绑定(bind)到静态定义的 MenuItems

转载 作者:行者123 更新时间:2023-12-04 02:07:45 25 4
gpt4 key购买 nike

我的应用程序包含 TreeView它支持一组命令,但命令可能在菜单之间移动,只出现在某些菜单上而不出现在其他菜单上,在多个菜单之间共享等。

我知道我在编译时支持的所有命令集,所以理论上我可以定义一个 <MenuItem>带有 x:Key 的资源我的 <TreeView.Resources> 中的每个属性部分。但是,对于单击的任何给定节点,出现哪些菜单项只能在运行时确定。我可以绑定(bind)ContextMenu.ItemsSource我的应用程序中返回 MenuItem[] 的内容,但是为了构建这个数组,我需要访问在 XAML 文件中静态定义的 MenuItems。

我做这一切都错了吗?或者有没有办法做我想做的事?

最佳答案

将 ContextMenu.ItemsSource 绑定(bind)到不是 MenuItem[] 而是 ObservableCollection < YourMenuClass >。 YourMenuClass 应该包含你想要绑定(bind)的标题和其他参数,也许是一个命令。然后使用模板生成您的菜单项。

   <ContextMenu ItemsSource="{Binding MenuItemList}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Path=Name}" Command="{Binding MyCommand}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>

关于wpf - 将 ContextMenu 项动态绑定(bind)到静态定义的 MenuItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22848074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com