Разница между командой и событием в блоке составного приложения
Я использую составной блок приложения в моем приложении. Есть 2 концепции, EventHandlers и CommandHandlers, которые кажутся мне очень похожими... обе позволяют вам вызывать функциональность в одной части пользовательского интерфейса из другой. В чем разница между ними?
1 ответ
Я считаю, что это вопрос удобства. Мы используем команды для кнопок на ленте:
Public Sub AddElementToRibbonGroup(WorkItem As WorkItem, elementDescription As String, menuGroupKey As String, commandName As String, commandKey As String)
WorkItemController.ShellExtensionService.AddButtonToolExtension( _
WorkItem, _
commandKey, _
New ButtonToolAppearance(elementDescription), _
menuGroupKey, _
WorkItem.Commands(commandName))
End Sub
Но мы генерируем события из формы для обработки логики в контроллере:
sample_View.vb:
<EventBroker.EventPublication(Constants.Events.CreateNewNavTab, PublicationScope.Global)> _
Public Event CreateNewNavTab As EventHandler
' Node in Navigation Tree is double clicked
Private Sub NavTree_DoubleClick(sender As System.Object, e As System.EventArgs) Handles NavTree.DoubleClick
...
RaiseEvent CreateNewNavTab(Me, Nothing)
End Sub
sample_controller.vb:
' A new tab is created from the Nav Tree.
<EventSubscription(Constants.Events.CreateNewNavTab, ThreadOption.UserInterface)> _
Public Sub CreateNewNavTab(ByVal pNavView As Object, ByVal e As EventArgs)
...
End Sub
Надеюсь это поможет!