Como: Adicionar um Item de Menu de atalho para um tipo de Item de projeto do SharePoint personalizado
Quando você define um tipo de item de projeto personalizado do SharePoint, você pode adicionar um item de menu de atalho para o item de projeto. O item de menu é exibido quando um usuário clica no item de projeto na Solution Explorer.
As seguintes etapas assumem que você já tenha definido o seu próprio tipo de item de projeto do SharePoint. Para obter mais informações, consulte Como: Definir um tipo de Item de projeto do SharePoint.
Para adicionar um item de menu de atalho para um tipo de item de projeto personalizado
No InitializeType método de seu ISharePointProjectItemTypeProvider implementação, a alça a ProjectItemMenuItemsRequested evento da projectItemTypeDefinition parâmetro.
No seu manipulador de eventos para o ProjectItemMenuItemsRequested evento, adicione uma nova IMenuItem o objeto para o ViewMenuItems ou AddMenuItems coleção do parâmetro de argumentos de evento.
No Click o manipulador de eventos para o novo IMenuItem o objeto, realizar as tarefas que você deseja executar quando um usuário clica o item de menu de atalho.
Exemplo
O exemplo de código a seguir demonstra como adicionar um item de menu de contexto para um tipo de item de projeto personalizado. Quando o usuário clica no item de projeto na Solution Explorer e clica no Mensagem de gravação para a janela de saída item de menu, Visual Studio exibe uma mensagem no saída janela.
Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Namespace Contoso.Examples.ProjectItemTypeWithMenu
<Export(GetType(ISharePointProjectItemTypeProvider))> _
<SharePointProjectItemType("Contoso.ExampleProjectItemType")> _
<SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")> _
Friend Class ExampleProjectItemTypeWithMenu
Implements ISharePointProjectItemTypeProvider
Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
Implements ISharePointProjectItemTypeProvider.InitializeType
projectItemTypeDefinition.Name = "ExampleProjectItemType"
projectItemTypeDefinition.SupportedDeploymentScopes = _
SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
AddHandler projectItemTypeDefinition.ProjectItemMenuItemsRequested, AddressOf ProjectItemMenuItemsRequested
End Sub
Private Sub ProjectItemMenuItemsRequested(ByVal Sender As Object,
ByVal e As SharePointProjectItemMenuItemsRequestedEventArgs)
Dim menuItem As IMenuItem = e.ViewMenuItems.Add("Write Message to Output Window")
AddHandler menuItem.Click, AddressOf MenuItem_Click
End Sub
Private Sub MenuItem_Click(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
Dim projectItem As ISharePointProjectItem = CType(e.Owner, ISharePointProjectItem)
projectItem.Project.ProjectService.Logger.WriteLine(
String.Format("This message was written from a shortcut menu for {0}.", projectItem.Name),
LogCategory.Status)
End Sub
End Class
End Namespace
using System;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;
namespace Contoso.Examples.ProjectItemTypeWithMenu
{
[Export(typeof(ISharePointProjectItemTypeProvider))]
[SharePointProjectItemType("Contoso.ExampleProjectItemType")]
[SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")]
internal class ExampleProjectItemTypeWithMenu : ISharePointProjectItemTypeProvider
{
public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
{
projectItemTypeDefinition.Name = "ExampleProjectItemType";
projectItemTypeDefinition.SupportedDeploymentScopes =
SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
projectItemTypeDefinition.ProjectItemMenuItemsRequested +=
projectItemTypeDefinition_ProjectItemMenuItemsRequested;
}
void projectItemTypeDefinition_ProjectItemMenuItemsRequested(object sender,
SharePointProjectItemMenuItemsRequestedEventArgs e)
{
IMenuItem menuItem = e.ViewMenuItems.Add("Write Message to Output Window");
menuItem.Click += MenuItemExtension_Click;
}
void MenuItemExtension_Click(object sender, MenuItemEventArgs e)
{
ISharePointProjectItem projectItem = (ISharePointProjectItem)e.Owner;
projectItem.Project.ProjectService.Logger.WriteLine(
String.Format("This message was written from a shortcut menu for {0}.", projectItem.Name),
LogCategory.Status);
}
}
}
Este exemplo usa o serviço de projeto do SharePoint para gravar a mensagem para o saída janela. Para obter mais informações, consulte Usando o serviço de projeto do SharePoint.
Compilando o código
Este exemplo requer um projeto de biblioteca de classe com referências aos assemblies seguintes:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
O Item de projeto de implantação
Para permitir que outros desenvolvedores a usar o item de projeto, crie um modelo de projeto ou de um modelo de item de projeto. Para obter mais informações, consulte Criando modelos de Item e projeto para os itens de projeto do SharePoint.
Para implantar o item de projeto, criar um Visual Studio pacote de extensão (VSIX) para o assembly, o modelo e quaisquer outros arquivos que você deseja distribuir com o item de projeto. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Consulte também
Tarefas
Como: Definir um tipo de Item de projeto do SharePoint
Outros recursos
Como: Adicionar uma propriedade para um tipo de Item de projeto do SharePoint personalizado
Definindo tipos de Item de projeto do SharePoint personalizados