WPF Command
和Event
之间有什么区别?
答案 0 :(得分:5)
一般来说,事件与命令几乎相同,只是处理用户交互的不同模式。
WPF中的 Commands
允许您将命令处理程序的实现移动到buisness层。命令组合启用状态和执行,因此一切都已就绪。通过搜索MVVM模式重新开始。
一开始,命令的实现起来比较复杂,所以如果你的应用程序很小,你应该考虑坚持事件。
答案 1 :(得分:4)
Commands
与Events
类似,不同之处在于我们可以将任意数量的UI控件或输入手势与命令相关联,并将该命令绑定到在激活控件或执行手势时执行的处理程序。
Command
也跟踪天气是否可用。如果它们不可用,则禁用与该命令关联的所有控件。
调用命令时执行的代码位于命令Execute
事件处理程序中。
确定命令的代码是否可以被调用位于命令CanExecute
事件处理程序中。
WPF有一些内置的命令:
Command Class | Example Commands
-----------------------------------------------
ApplicationCommands | Close, Cut, Copy, Paste, Save, Print
NavigationCommands | BrowseForward, BrowseBack, Zoom, Search
EditingCommands | AlignXXX, MoveXXX, SelectXXX
MediaCommands | Play, Pause, NextTrack, IncreaseVolume, Record, Stop
答案 2 :(得分:2)
您可以在视图(XAML)中绑定WPF命令并接收引发的事件。这样你就不必使用MVVM中禁止使用的代码。
所以绑定元素非常重要。但是它也实现了CanExecute
,如果它返回false,通常会使你的控件被禁用,例如如果它是一个按钮。
答案 3 :(得分:1)
在事件中,动作与其来源紧密结合,不能自由重复使用;使用命令,您可以轻松地在一个位置维护各种操作,并在应用程序的任何位置重复使用它们。
什么使命令与a不同 附加到a的简单事件处理程序 按钮或计时器就是那个命令 分离语义和 来自其逻辑的行动的始发者。这允许多个不同的源调用相同的命令逻辑,并允许为不同的目标定制命令逻辑。
取自 - 指挥概述:http://msdn.microsoft.com/en-us/library/ms752308(v=VS.90).aspx
本文解释了命令的概念,在使用命令之前必须阅读。
这个SO线程也提供了很多有用的信息。 :
答案 4 :(得分:0)
粗略地说,Command
是Object
(按钮,菜单)启用/禁用状态和操作的封装。
Command
的限制: