0

我有一个列表视图,上下文菜单与每个列表视图项相关联。但是单击菜单项不会调用相应的命令 myCommand。myCommand 链接到“执行”和“可以执行”方法。“可以执行”方法有效,但“执行”方法无效。它有一个参数。如果我删除数据上下文,则调用“执行”方法,但参数始终为空。我在 xaml 中的代码:

<ListView.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Open Directory " 
                              DataContext="{Binding SelectedItem, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
                              Command="{Binding OpenLink}"
                              CommandParameter="{Binding Path=LocalPath}"/>
                </ContextMenu>
            </ListView.ContextMenu>

简短说明:我列表中的每个项目都有一个属性 LocalPath。当我右键单击一个项目并选择“打开目录”时,它应该打开该项目的目录。谢谢你的帮助

尼可

4

1 回答 1

3

设置DataContext更改所有绑定的默认绑定上下文。如果你想LocalPath从你那里得到,ListView.SelectedItem你可以RelativeSource只对那个绑定使用绑定,但你需要使用PlacementTargetto get from ContextMenuto ListView

<MenuItem 
    Header="Open Directory"
    CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem.LocalPath}"
    Command="{Binding OpenLink}"/>
于 2015-03-11T11:41:21.560 回答