Sdílet prostřednictvím


Postupy: Přidání položky místní nabídky do vlastního typu položky projektu služby SharePoint

Při definování vlastního typu položky projektu SharePoint, můžete položku nabídky zástupců položek projektu.Položka nabídky se zobrazí, když uživatel klepne pravým tlačítkem myši na položku projektu v Průzkumníku.

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řidat položku nabídky zástupců vlastního typu položky projektu

  1. V metodě InitializeType vaší implementace ISharePointProjectItemTypeProvider zpracujte událost ProjectItemMenuItemsRequested parametru projectItemTypeDefinition.

  2. V obslužné rutině pro událost ProjectItemMenuItemsRequested události, přidejte nový IMenuItem objektu ViewMenuItems nebo AddMenuItems kolekce parametru argumentů události.

  3. V Click obslužnou rutinu události pro nové IMenuItem objekt, provádět úkoly, které chcete provést, když uživatel vybere položky místní nabídky.

Příklad

Následující příklad kódu ukazuje, jak přidat položku kontextové nabídky vlastního typu položky projektu.Když uživatel otevře místní nabídka položky projektu v Průzkumníku a zvolí Napsat zprávu výstupní okno položky nabídky, Visual Studio zobrazí zprávu v výstup okno.

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á k zápisu zprávy do projektu služby SharePoint výstup okna.Další informace naleznete v tématu Použití služby projektu služby SharePoint.

Probíhá kompilace kódu

Tento příklad vyžaduje projekt knihovny tříd 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í šablon položek a projektů pro položky projektu služby SharePoint.

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é

Koncepty

Postupy: Definování typu položky projektu SharePoint

Postupy: Přidání vlastnosti do vlastního typu položky projektu SharePoint

Definování vlastních typů položek projektu služby SharePoint