DelegateCommand 与“附加行为”相同吗?
我一直在使用 DelegateCommand CodePlex 上的 ="nofollow noreferrer">MVVM Visual Studio 模板。 这非常有效让视图能够在其 ViewModel 上执行命令。
我在某处读到,在 MVVM 中应该使用“附加行为”。 据我所知,“附加行为”与 DelegateCommand 是相同类型的模式,但由 Silverlight 使用,因为它没有命令。
这是正确吗? 或者除了 DelegateCommand 之外,“附加行为”是否有某种不同的性质并且值得学习?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
DelegateCommand(或 RelayCommand,几乎相同但接受参数)只是 ICommand 接口的轻量级实现,它允许 ViewModel 轻松公开命令。
附加行为是将事件链接到命令的一种方式。 例如,大多数 WPF 控件没有 Command 属性,因此您通常无法定义命令来对其事件做出反应。 通过附加行为,您可以将任何控件的任何事件“绑定”到 ViewModel 的命令。
看看 Marlon Grech 的实现,这似乎对我来说最灵活
A DelegateCommand (or a RelayCommand, which is almost the same but accepts a parameter) is just a light-weight implementation of the ICommand interface that allows a ViewModel to expose commands easily.
Attached behaviors are a way to link an event to a command. For instance, most WPF controls don't have a Command property, so you can't normally define a command to react to their events. With attached behaviors, you can "bind" any event of any control to a command of your ViewModel.
Have a look at Marlon Grech's implementation, which seems the most flexible to me