复制ListView控件的上下文菜单

use*_*403 5 wpf

在WPF中向ListView控件添加"复制到剪贴板"功能的最佳方法是什么?

我尝试将ApplicationCommands.Copy添加到ListView ContextMenu或ListViewItem ContextMenu,但命令仍保持禁用状态.

谢谢,彼得

这是我尝试过的一个xaml样本......

 <Window.Resources>
    <ContextMenu x:Key="SharedInstanceContextMenu" x:Shared="True">
        <MenuItem Header="Copy" Command="ApplicationCommands.Copy"/>            
    </ContextMenu>
 </Window.Resources>

 <ListBox Margin="12,233,225,68" Name="listBox1" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=UpToSourceCategoryByCategoryId.Category}" ContextMenu="{DynamicResource ResourceKey=SharedInstanceContextMenu}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
 </ListBox>
Run Code Online (Sandbox Code Playgroud)

在这种情况下我应该如何设置CommandTarget?

谢谢,彼得

Tod*_*ite 4

看来您需要 CommandBinding。

这就是我可能会如何去做你想做的事情。

<Window.CommandBindings>
    <CommandBinding
        Command="ApplicationCommands.Copy"
        Executed="CopyCommandHandler"
        CanExecute="CanCopyExecuteHandler" />
</Window.CommandBindings>

<Window.Resources>
    <ContextMenu x:Key="SharedInstanceContextMenu">
        <MenuItem Header="Copy" Command="ApplicationCommands.Copy"/>
    </ContextMenu>

    <Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListBoxItem}">
        <Setter Property="ContextMenu" Value="{StaticResource SharedInstanceContextMenu}" />
    </Style>
</Window.Resources>

<ListBox ItemContainerStyle="{StaticResource MyItemContainerStyle}">
    <ListBoxItem>One</ListBoxItem>
    <ListBoxItem>Two</ListBoxItem>
    <ListBoxItem>Three</ListBoxItem>
    <ListBoxItem>Four</ListBoxItem>
</ListBox>
Run Code Online (Sandbox Code Playgroud)