Я разработал инструмент поиска в Visual Studio для своей компании, он все хорошо работает с DynamicCombo (https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Combo_Box). Я пытаюсь расширить инструмент поиска, добавив возможность пользователю выбирать текст и затем нажатием ярлыков инструмента поиска DynamicCombo будет автоматически заполнен и поиск будет выполнен.
Мне удалось получить выделенный текст и выполнить команду инструмента поиска, но DynamicCombo не обновляется новым элементом и текст не изменяется.
Вот так я настраиваю DynamicCombo
var menuCommandID = new CommandID(new Guid(toolWindowSet), cmdIdSearchBox);
OleMenuCommand searchBoxCommand = new OleMenuCommand(new EventHandler(SearchTerm), menuCommandID)
{
ParametersDescription = "$" // accept any argument string
};
searchBoxCommand.CommandChanged += SearchTerm;
commandService.AddCommand(searchBoxCommand);
После получения выделенного текста, это как вызвать DynamicCombo. Это вызывает функцию для правильного выполнения поиска, но не заполняет DynamicCombo.
OleMenuCommand cmd = null;
if (GetService(typeof(IMenuCommandService)) is OleMenuCommandService commandService)
{
cmd = commandService?.FindCommand(new CommandID(new Guid(toolWindowSet), cmdIdSearchBox)) as OleMenuCommand;
cmd?.Invoke(searchTerms, new IntPtr());
}