什么先出现 - Command还是EventHandler?

9
在涉及到微软的MVVM模式及其命令/事件处理方面时,考虑我同时绑定一个命令到一个控件(比如一个按钮),并订阅该控件的Click事件。是否有任何通用规则来确定哪个动作会首先发生 - 与命令相关联的代码的处理还是与相应事件处理程序相关联的代码的处理?

我猜最大的问题是,你为什么要两者兼备。使用命令的关键是,你通常会将其绑定到 ViewModel 中的 ICommand 上,这样做,VM 就不需要知道任何关于按钮的信息。这是否涉及将一些代码混合在代码后面和 VM 中?如果你正在使用 VM,那么你如何绑定到按钮事件? - stevethethread
1
@SteveSolomon 嗯,我正在尝试在运行时动态创建控件。为了遵循MVVM模式,我试图将所有必要的代码留在VIEW中。因此,我目前正在使用命令绑定来连接VIEW / VIEWMODEL和“Inter-VIEW”操作的EventHandlers。 - marc wellman
我认为这并不具体。我想第一个订阅事件的人会首先被引发。如果命令在XAML中连接,我希望那将首先订阅。但是,有多种方法可以解决问题。 - Peter Ritchie
2
如果没有记录,行为可能在未来发生变化。我建议编程时要像每次调用都可能发生变化一样。 - user1228
1个回答

7

在绑定的ICommand之前,会触发EventHandlers。


2
这是正确的。当我想要在处理命令之前进行一些特定于视图的检查时,我偶尔会这样做。如果检查失败,事件可以取消命令。 - Rachel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接