DelegateCommand 与“附加行为”相同吗?

发布于 2024-07-21 23:11:28 字数 483 浏览 8 评论 0 原文

我一直在使用 DelegateCommand CodePlex 上的 ="nofollow noreferrer">MVVM Visual Studio 模板。 这非常有效让视图能够在其 ViewModel 上执行命令。

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

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

I have been using the DelegateCommand found in the MVVM Visual Studio template at CodePlex. This works very nicely for having Views be able to execute commands on their ViewModel.

I read somewhere that in MVVM "attached behaviors" should be used. As far as I can tell, "attached behaviors" are the same type of pattern as DelegateCommand but are used by Silverlight since it does not have commands.

Is this correct? Or are "attached behaviors" something different in kind and worth learning in addtiion to DelegateCommand?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我是男神闪亮亮 2024-07-28 23:11:28

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文