小编Slá*_*val的帖子

MVVM中的RoutedUICommand

我在应用程序中遇到了MVVM.我有一个TabControl,其每个Tab都有一个控件,允许以某种方式编辑文件.例如,文本文件或图像.每个控件都绑定到ViewModel区域中的一个类(如图所示).我也有RoutedUICommands.其中一个命令是WordWrap,只有在文本文件的情况下才有意义.此命令在MenuItem或Button等中使用.我想仅在文本控件是此命令的目标时启用它.如何根据MVVM正确地做到这一点?

更多细节:

图图

窗口的XAML具有:

<Window.CommandBindings>
<CommandBinding Command="local:EditorCommands.WordWrap"
    Executed="WordWrapExecuted"
    CanExecute="CommandCanBeExecutedWhenAnythingIsOpen"/>
</Window.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

菜单项以这种方式使用:

<MenuItem Command="local:EditorCommands.WordWrap"/>
Run Code Online (Sandbox Code Playgroud)

第一件事是Executed和CanExecute事件处理程序:它们在Window类中,虽然我理解MVVM是什么,逻辑应该只在ViewModel中.

而且,这些函数中的发送者是窗口的实例.为什么它不是命令的目标?

我应该为每个命令编写自己的RoutedUICommand后继吗?

wpf routed-commands mvvm

5
推荐指数
1
解决办法
1445
查看次数

标签 统计

mvvm ×1

routed-commands ×1

wpf ×1