Практическое руководство. Добавление пункта контекстного меню в расширение элемента проекта SharePoint
Чтобы добавить пункт контекстного меню в существующий элемент проекта SharePoint, можно воспользоваться расширением элемента проекта.Этот пункт меню отображается, когда пользователь щелкает правой кнопкой мыши элемент проекта в Обозревателе решений.
В описании следующих действий предполагается, что расширение элемента проекта уже создано.Дополнительные сведения см. в разделе Практическое руководство. Создание расширения элемента проекта SharePoint.
Добавление пункта контекстного меню в расширение элемента проекта
В методе Initialize реализации ISharePointProjectItemTypeExtension обработайте событие ProjectItemMenuItemsRequested параметра projectItemType.
В обработчике событий для события ProjectItemMenuItemsRequested добавьте новый объект IMenuItem в коллекцию ViewMenuItems или AddMenuItems параметра аргументов события.
Выполните в обработчике событий Click для нового объекта IMenuItem задачи, которые должны выполняться при выборе пользователем пункта контекстного меню.
Пример
В следующем примере кода демонстрируется добавление пункта контекстного меню в элемент проекта приемника событий.Когда пользователь щелкает правой кнопкой мыши элемент проекта в Обозревателе решений и выбирает пункт меню Написать сообщение в окно выходных данных, Visual Studio отображает сообщение в окне Выходные данные.
Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Namespace Contoso.Examples.ProjectItemExtensionWithMenu
<Export(GetType(ISharePointProjectItemTypeExtension))> _
<SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")> _
Friend Class ExampleProjectItemExtensionWithMenu
Implements ISharePointProjectItemTypeExtension
Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _
Implements ISharePointProjectItemTypeExtension.Initialize
AddHandler projectItemType.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.ProjectItemExtensionWithMenu
{
[Export(typeof(ISharePointProjectItemTypeExtension))]
[SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")]
internal class ExampleProjectItemExtensionWithMenu : ISharePointProjectItemTypeExtension
{
public void Initialize(ISharePointProjectItemType projectItemType)
{
projectItemType.ProjectItemMenuItemsRequested += projectItemType_ProjectItemMenuItemsRequested;
}
void projectItemType_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);
}
}
}
В этом примере используется служба проекта SharePoint для записи сообщения в окно Выходные данные.Дополнительные сведения см. в разделе Использование службы проектов SharePoint.
Компиляция кода
Для этого примера требуется проект библиотеки классов со ссылками на следующие сборки:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Развертывание расширения
Чтобы развернуть расширение, создайте пакет расширения Visual Studio (VSIX) для сборки и всех остальных файлов, которые предположительно будут распространяться с расширением.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.
См. также
Задачи
Пошаговое руководство. Расширение типа проектного элемента SharePoint
Основные понятия
Практическое руководство. Создание расширения элемента проекта SharePoint
Практическое руководство. Добавление свойства в расширение элемента проекта SharePoint