Aracılığıyla paylaş


Nasıl yapılır: bir özel SharePoint proje öğe türü için bir kısayol menü öğesi Ekle

Özel bir SharePoint proje öğesi türünü tanımladığınızda, proje öğesine kısayol menü öğesi ekleyebilirsiniz.Menü öğesi kullanıcı proje öğeyi tıklattığında görünür Çözüm Gezgini.

Aşağıdaki adımlar, kendi SharePoint proje öğesi türü önceden tanımlamış varsayar.Daha fazla bilgi için bkz. Nasıl yapılır: SharePoint proje öğesi türü tanýmlamak.

Özel proje öğesi türü için bir kısayol menü öğesi eklemek için

  1. İçinde InitializeType yöntemi, ISharePointProjectItemTypeProvider uygulaması, tanıtıcı ProjectItemMenuItemsRequested , olay projectItemTypeDefinition parametresi.

  2. Olay işleyicisi içinde ProjectItemMenuItemsRequested olay, yeni bir ekleme IMenuItem nesnesinin ViewMenuItems veya AddMenuItems olay bağımsız değişkenler parametre koleksiyonu.

  3. İçinde Click olay işleyicisi yeni IMenuItem nesne, istediğiniz bir kullanıcı sizin kısayol menü öğesi seçtiğinde yürütülecek görevleri gerçekleştirin.

Örnek

Aşağıdaki kod örneğinde, özel proje öğesi türü için bir bağlam menü öğesi Ekle gösterilmiştir.Kullanıcı açtığında kısayol menüsünü Proje öğesinden Çözüm Gezgini ve seçer Yazma iletisi çıktı penceresine menü öğesi, Visual Studio içinde bir ileti görüntüler Çıkış pencere.

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);
        }
    }
}

Bu örnek için ileti yazmak için SharePoint proje hizmeti kullanan Çıkış pencere.Daha fazla bilgi için bkz. SharePoint proje hizmeti kullanma.

Kod Derleniyor

Bu örnekte aşağıdaki derlemelere başvuruları olan bir sınıf kitaplığı projesi gereklidir:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Proje öğesi dağıtma

Proje öğe diğer geliştiriciler için proje şablonu veya proje öğe şablonu oluşturun.Daha fazla bilgi için bkz. Madde şablonları ve proje şablonları SharePoint proje maddeler oluşturma.

Proje öğesi dağıtmak için oluşturmak bir Visual Studio uzantısı (VSIX) paketini derleme, şablon ve proje öğesi ile dağıtmak istediğiniz tüm dosyaları.Daha fazla bilgi için bkz. Visual Studio SharePoint Araçlar için uzantıları dağıtma.

Ayrıca bkz.

Kavramlar

Nasıl yapılır: SharePoint proje öğesi türü tanýmlamak

Nasıl yapılır: bir özel SharePoint proje öğe türü için bir özellik ekleme

Özel SharePoint proje öğe türlerini tanýmlamak