Я переношу старый проект VB6 на С#, используя Winforms. В оригинале используется пакет ActiveBar от DataDynamic для одновременного управления изменениями нескольких элементов на панелях инструментов, в меню и на ярлыках. Все, что нужно сделать в старом коде, чтобы изменить текст элемента, совместно используемого несколькими меню, панелью инструментов и контекстным меню, — это изменить свойство «Caption» объекта «инструмент».
Я чувствую, что .NET должен иметь какой-то способ совместного использования ToolStripItem
между различными контейнерами, но это не похоже на это. Я что-то упускаю?
В настоящее время я несколько раз начинал с различных идей, начиная с реализации метода расширения Clone
для объектов ToolStripMenuItem
и заканчивая тем, чтобы моя форма отслеживала каждый общий объект. Это не удалось, когда я понял, что обновление локальной копии не приведет к обновлению других (мне пришлось бы добавлять сложные события обновления, что требует больше работы, чем простое включение и выключение каждого элемента вручную). Я подумал о том, чтобы создать какой-то способ обновления всех элементов на основе его тега. Это тоже казалось довольно невозможным.
Какие методы вы использовали в подобных ситуациях?