从 ItemsControl 中的 Item 获取上下文菜单目标
本文关键字:上下文 菜单 目标 获取 Item ItemsControl 中的 | 更新日期: 2023-09-27 18:34:56
我有一个绑定到ViewModel上的集合的ItemsControl。此项目控件显示多个"消息"。我需要一个上下文菜单,单击该菜单时,会提供一个选项,用于将该特定消息复制到剪贴板。
该命令应该在视图模型上激活,而我要传递的命令参数是消息本身。
我遇到的问题是收到上下文菜单已打开的实际消息。
我已经尝试了多种不同的方法,但我似乎无法找到一种将消息作为命令参数传递的方法。
我应该寻找不同的方法来实现这一目标吗?使用带有项目演示器的项控件是否存在问题?
<ScrollViewer CanContentScroll="False"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
Grid.RowSpan="1">
<ItemsControl ItemsSource="{Binding MyActiveConversation.OrderedMessages, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding MyActiveConversation.IsOptOut, Converter={StaticResource BoolToEnabledInverter}}"
ItemTemplateSelector="{StaticResource tSelector}"
VirtualizingPanel.IsVirtualizing="False"
SourceUpdated="SourceUpdatedHandler" MinWidth="450">
<ItemsControl.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy" Template="{DynamicResource MenuItemControlTemplate}"
CommandParameter="{Binding}" Command="{Binding Path=Data.CopyTextMessageCommand, Source={StaticResource ContextProxy}}">
</MenuItem>
</ContextMenu>
</ItemsControl.ContextMenu>
<ItemsControl.Template>
<ControlTemplate>
<Grid>
<ItemsPresenter VirtualizingPanel.IsVirtualizing="False"/>
</Grid>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
CommandParameter="{Binding}"
对我有用,对CommandParameter="{Binding .}"
也一样