Postupy: Přidat vlastní typ položky projektu SharePoint položky místní nabídky
Při definování vlastní typ položky projektu SharePoint můžete přidat položky místní nabídky položku projektu. Položky nabídky se zobrazí, když uživatel klepne na položku projektu v Aplikaci Solution Explorer.
Následující postup předpokládá, že máte již definován vlastní typ položky projektu služby SharePoint. Další informace naleznete v tématu Postupy: Definování typu položky projektu SharePoint.
Přidání položky místní nabídky Typ projektu vlastní položky
V InitializeType metoda vaše ISharePointProjectItemTypeProvider provedení, úchyt ProjectItemMenuItemsRequested události projectItemTypeDefinition parametr.
V obslužnou rutinu události pro ProjectItemMenuItemsRequested událostí přidat nový IMenuItem k objektu ViewMenuItems nebo AddMenuItems kolekce argumenty parametru události.
V Click obslužnou rutinu události pro nový IMenuItem objekt provádět úlohy, kterou chcete spustit, když uživatel klepne na položku nabídky zástupce.
Příklad
Následující příklad kódu ukazuje, jak přidat položky kontextové nabídky Typ položky vlastní projekt. Po kliknutí pravým tlačítkem na položku projektu v Aplikaci Solution Explorer a klepne Zapisovat zprávy výstupní okno zobrazí zprávu v nabídce položku Visual Studio Výstup okna.
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);
}
}
}
Tento příklad používá služba SharePoint projektu zapisovat zprávy Výstup okna. Další informace naleznete v tématu Pomocí služby SharePoint projektu.
Probíhá kompilace kódu
V tomto příkladu vyžaduje projektu knihovny třídy s odkazy na následující sestavení:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Nasazení položky projektu
Chcete-li povolit ostatním vývojářům použít vaše položky projektu, vytvořte šablonu projektu nebo šablonu položky projektu. Další informace naleznete v tématu Vytváření položek projektu SharePoint položku šablony a šablony aplikace Project.
Chcete-li nasadit položku projektu, vytvořte balíček Visual Studio rozšíření (VSIX) pro sestavení, šablonu a všechny další soubory, které chcete distribuovat s položkou projektu. Další informace naleznete v tématu Nasazování rozšíření pro nástroje služby SharePoint v aplikaci Visual Studio.
Viz také
Úkoly
Postupy: Definování typu položky projektu SharePoint
Další zdroje
Postupy: Přidání vlastnosti do vlastního typu položky projektu SharePoint