3

我一直在使用CodePlex的MVVM Visual Studio 模板中的DelegateCommand 。这对于让 View 能够在其 ViewModel 上执行命令非常有效。

我在某处读到应该在 MVVM 中使用“附加行为”。据我所知,“附加行为”是与 DelegateCommand 相同类型的模式,但Silverlight使用它,因为它没有命令。

这是正确的吗?或者,除了 DelegateCommand 之外,“附加行为”是否具有不同的性质并且值得学习?

4

1 回答 1

6

DelegateCommand(或 RelayCommand,几乎相同,但接受参数)只是 ICommand 接口的轻量级实现,它允许 ViewModel 轻松公开命令。

附加行为是将事件链接到命令的一种方式。例如,大多数 WPF 控件没有 Command 属性,因此您通常无法定义命令来对其事件做出反应。通过附加行为,您可以将任何控件的任何事件“绑定”到 ViewModel 的命令。看看Marlon Grech 的实现,这对我来说似乎是最灵活的

于 2009-05-29T08:57:00.330 回答