小编Mar*_*nna的帖子

命令绑定在动态 MVVM 上下文菜单中不起作用

我是 WPF 新手。和其他许多人一样,我试图将 a 绑定ContextMenu到 anObservableCollection以创建动态上下文菜单。Command除了将属性绑定到代表菜单项的类TheCommand的属性之外,一切正常。MenuItemViewModel该命令不会被触发。我究竟做错了什么?

从头开始,ContextMenu是 的子级Image,当鼠标悬停在 上时会显示Image

 <Image.ContextMenu >
        <ContextMenu ItemsSource="{DynamicResource ContextMenu}"
Run Code Online (Sandbox Code Playgroud)

其中空的 ContextMenu 定义如下:

<Window.Resources>
    <local:MenuItemViewModelCollection x:Key="ContextMenu">
    </local:MenuItemViewModelCollection>

    <HierarchicalDataTemplate DataType="{x:Type local:MenuItemViewModel}"
                                      ItemsSource="{Binding Path=Children}">
        <HierarchicalDataTemplate.ItemContainerStyle>
            <Style TargetType="MenuItem">
                <Setter Property="Command"
                    Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}},
                                    Path=DataContext.TheCommand}"/>
              <!--  Value="{Binding Path=TheCommand}" /> I tried this too -->

            </Style>
        </HierarchicalDataTemplate.ItemContainerStyle>
    </HierarchicalDataTemplate>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

TheCommand属性定义如下:

 <Image.ContextMenu >
        <ContextMenu ItemsSource="{DynamicResource ContextMenu}"
Run Code Online (Sandbox Code Playgroud)

wpf command contextmenu mvvm

4
推荐指数
1
解决办法
5016
查看次数

标签 统计

command ×1

contextmenu ×1

mvvm ×1

wpf ×1