我一直在使用CodePlex的MVVM Visual Studio 模板中的DelegateCommand 。这对于让 View 能够在其 ViewModel 上执行命令非常有效。
我在某处读到应该在 MVVM 中使用“附加行为”。据我所知,“附加行为”是与 DelegateCommand 相同类型的模式,但Silverlight使用它,因为它没有命令。
这是正确的吗?或者,除了 DelegateCommand 之外,“附加行为”是否具有不同的性质并且值得学习?
我一直在使用CodePlex的MVVM Visual Studio 模板中的DelegateCommand 。这对于让 View 能够在其 ViewModel 上执行命令非常有效。
我在某处读到应该在 MVVM 中使用“附加行为”。据我所知,“附加行为”是与 DelegateCommand 相同类型的模式,但Silverlight使用它,因为它没有命令。
这是正确的吗?或者,除了 DelegateCommand 之外,“附加行为”是否具有不同的性质并且值得学习?
DelegateCommand(或 RelayCommand,几乎相同,但接受参数)只是 ICommand 接口的轻量级实现,它允许 ViewModel 轻松公开命令。
附加行为是将事件链接到命令的一种方式。例如,大多数 WPF 控件没有 Command 属性,因此您通常无法定义命令来对其事件做出反应。通过附加行为,您可以将任何控件的任何事件“绑定”到 ViewModel 的命令。看看Marlon Grech 的实现,这对我来说似乎是最灵活的