为什么RelayCommand或DelegateCommand不属于WPF?

Pat*_*lho 6 .net wpf mvvm relaycommand delegatecommand

Model-View-ViewModel(MVVM)方法似乎是WPF UI开发中的领跑者模式.我读过的几乎每篇文章都暗示这是最好的做法.在许多文章中使用RelayCommand或DelegateCommand也很突出,似乎几乎不可能在不使用它们(或任何其他变体)的情况下实现MVVM.那么为什么它们不是.NET 4的一部分呢?

我知道RelayCommand实现起来非常简单,许多第三方工具包已经拥有它但我只是想知道微软为什么会遗漏一些所谓"最佳实践"实现的基本和基本的东西?

Jen*_*s H 0

我个人对此的看法是 RelayCommands 破坏了 MVVM 的意图。

在我看来,为每个目的实现单个命令比使用 RelayCommands 更“最佳实践”,因为每个类都有“单一职责”。命令应该将其行为封装在自身中,而不是将其委托给视图模型。

当您必须单步执行如此多的函数/操作/委托并从一个对象跳转到另一个对象时,调试 RelayCommands 并不那么直接,而且是一个真正的痛苦。