![](/img/trans.png)
[英]How to copy selected listview item by copy command in the context menu
[英]Binding a context menu header to the selected item of a ListView
我正在尝试将上下文菜单的 header 绑定到相应ListView
的选定项的属性。 ItemsSource
的对象具有IsDuplicate
属性。 知道有什么问题吗?
<ListView x:Name="AthletesListView" ItemsSource="{Binding FoundAthletes}">
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Name="AddorEditAthleteMenuItem"
Header="{Binding SelectedItem.IsDuplicate,
ElementName=AthletesListView,
Converter={StaticResource FoundAthletesAddEditMenuItemConverter}}"
Click="AddAthleteMenuItem_Click"/>
</ContextMenu>
</ListView.ContextMenu>
错误信息下方:
System.Windows.Data 错误:4:找不到与引用“ElementName = AthletesListView”绑定的源。 绑定表达式:路径=选定项; 数据项=空; 目标元素是'MenuItem'(名称='AddorEditAthleteMenuItem'); 目标属性是“标题”(类型“对象”)
ContextMenu
与关联的ListView
不是同一可视化树的一部分,因为它显示在不同的 window 中。 因此,相对源和元素名称绑定不起作用。
相反,您可以使用ContextMenu
的PlacementTarget
,即ListView
。
<MenuItem Name="AddorEditAthleteMenuItem"
Header="{Binding PlacementTarget.SelectedItem.IsDuplicate, RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}, Converter={StaticResource FoundAthletesAddEditMenuItemConverter}}"
Click="AddAthleteMenuItem_Click"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.