【问题标题】:Copy Context Menu for ListView Control复制 ListView 控件的上下文菜单
【发布时间】:2009-03-20 04:34:42
【问题描述】:

在 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>

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

谢谢,彼得

【问题讨论】:

    标签: wpf


    【解决方案1】:

    看来您需要一个 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>
    

    【讨论】:

      【解决方案2】:

      也可以通过附加属性来实现此功能,正如我在blog 中描述的那样。想法是向 ListView 注册 ApplicationCommands.Copy 命令,并在执行命令时从数据绑定中读取值。

      您也可以在博客条目中找到可下载的示例。

      【讨论】:

        猜你喜欢
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        相关资源
        最近更新 更多