WPF中的
Command
和Event
有什么区别?一般而言,事件和命令的功能几乎相同,只是处理用户交互的模式不同。
WPF
中的命令允许您将命令处理程序的实现移到业务层。命令结合了启用状态和执行功能,因此一切都就位了。搜索MVVM模式以了解更多信息。
首次实现命令会更复杂,因此如果您的应用程序很小,您应该考虑坚持使用事件。
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
你可以在视图(XAML)中绑定WPF命令并接收触发的事件。这样,您就不必使用代码后台,而这是MVVM中不允许的。
因此,绑定元素非常重要。但它还实现了CanExecute
,如果返回false,则通常会使您的控件变为禁用状态,例如,如果它是一个按钮。
Command
是封装了 Object
(按钮、菜单)的启用/禁用状态和操作的一种封装。
Command
的限制: