2009-05-29 56 views
3

我一直在使用CodePlex中的MVVM Visual Studio template中的DelegateCommand。这很好地工作有视图能够执行他们的ViewModel上的命令。DelegateCommand与“附加行为”相同吗?

我在MVVM的“附加行为”应该使用的地方读。据我所知,“附加行为”与DelegateCommand具有相同类型的模式,但由于它没有命令而被Silverlight使用。

这是正确?或者是“附加行为”是不同种类的东西,值得学习的是DelegateCommand?

回答

6

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

附加行为是将事件链接到命令的一种方式。例如,大多数WPF控件没有Command属性,所以通常不能定义一个命令来响应它们的事件。通过附加的行为,您可以将任何控件的任何事件“绑定”到ViewModel的命令上。 看看Marlon Grech's implementation,这对我来说似乎最灵活