我一直在使用CodePlex MVVM Visual Studio template中的 DelegateCommand 。这个可以很好地让View能够在他们的ViewModel上执行命令。
我在某处读过MVVM中应该使用“附加行为”。据我所知,“附加行为”与DelegateCommand是相同类型的模式,但由 Silverlight 使用,因为它没有命令。
正确?或者“附加行为”是一种不同的东西,值得学习添加到DelegateCommand吗?
答案 0 :(得分:6)
DelegateCommand(或RelayCommand,它几乎相同但接受参数)只是ICommand接口的轻量级实现,它允许ViewModel轻松地公开命令。
附加行为是将事件链接到命令的一种方法。例如,大多数WPF控件没有Command属性,因此您通常无法定义命令来响应其事件。使用附加的行为,您可以将任何控件的任何事件“绑定”到ViewModel的命令。 看看Marlon Grech's implementation,这对我来说似乎最灵活