ListView 中的 ContextMenu,单击菜单项不会触发预期的命令
ContextMenu in ListView, click on a menuitem doesn't fire the expected command
我有一个列表视图,每个列表视图项都有关联的上下文菜单。
但是单击菜单项不会调用相应的命令 myCommand。
myCommand 链接到 "Execute" 和 "Can Execute" 方法。 "Can Execute" 方法有效,但 "Execute" 方法无效。它有一个参数。
如果删除数据上下文,将调用 "Execute" 方法,但参数始终为空。
我的代码在 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。当我右键单击一个项目时,select "Open Directory",它应该打开这个项目的目录。
感谢您的帮助
妮可
设置DataContext
更改所有绑定的默认绑定上下文。如果你想从 ListView.SelectedItem
得到 LocalPath
你可以使用 RelativeSource
绑定只针对那个绑定但是你需要使用 PlacementTarget
从 ContextMenu
到 ListView
.
<MenuItem
Header="Open Directory"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem.LocalPath}"
Command="{Binding OpenLink}"/>
我有一个列表视图,每个列表视图项都有关联的上下文菜单。 但是单击菜单项不会调用相应的命令 myCommand。 myCommand 链接到 "Execute" 和 "Can Execute" 方法。 "Can Execute" 方法有效,但 "Execute" 方法无效。它有一个参数。 如果删除数据上下文,将调用 "Execute" 方法,但参数始终为空。 我的代码在 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。当我右键单击一个项目时,select "Open Directory",它应该打开这个项目的目录。 感谢您的帮助
妮可
设置DataContext
更改所有绑定的默认绑定上下文。如果你想从 ListView.SelectedItem
得到 LocalPath
你可以使用 RelativeSource
绑定只针对那个绑定但是你需要使用 PlacementTarget
从 ContextMenu
到 ListView
.
<MenuItem
Header="Open Directory"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem.LocalPath}"
Command="{Binding OpenLink}"/>