小编use*_*577的帖子

具有多种目标类型的WPF命令

我对使用不同目标类型的WPF命令感到有点困惑.

所以,如果我定义一个命令

<Window.CommandBindings>
        <CommandBinding Command="Copy"
                        Executed="CopyCmdExecuted"
                        CanExecute="CopyCmdCanExecute"/>

    </Window.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

现在我在上下文菜单中使用它:

                    <ContextMenu Name="FolderContextMenu">
                        <MenuItem Command="Copy"/>
                        </ContextMenu>
Run Code Online (Sandbox Code Playgroud)

我有一个方法来处理命令:

private void CopyCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{


}
Run Code Online (Sandbox Code Playgroud)

我在一个普通的老菜单中使用它:

    <Menu  Name="editMenu">
        <MenuItem Command="Copy"/>
    </Menu>
Run Code Online (Sandbox Code Playgroud)

理解这一点我没有问题.但是如果目标对象是不同的类型,我有点困惑我该怎么办.

假设我有文件夹和用户,这两个文件都有一个带有New命令的上下文菜单(菜单栏编辑菜单也有New命令).

执行New时,无论是文件夹还是用户,都会执行CopyCmdExecuted.那么,我现在应该对目标进行解复用吗?就像是

   private void CopyCmdExecuted(object sender, ExecutedRoutedEventArgs e)
        {
           if(sender is User)
               // Do copy user stuff
           if(sender is Folder)
               // Do copy folder stuff
        }
Run Code Online (Sandbox Code Playgroud)

如果我想要复制很多数据类型,那看起来有点烦人.我在这里不明白吗?

(显然,我可以让文件夹和用户从带有DoCopy的Copiable基类继承,但这似乎仍然是错误的.)

wpf command

7
推荐指数
1
解决办法
1077
查看次数

标签 统计

command ×1

wpf ×1