2009-07-24 3 views
1

Я очень новичок в Composite WPF, и я борюсь с базовой архитектурой оболочки.В составном WPF (Prism), может/должен иметь несколько модулей, разделяющих область «панель инструментов»?

Предположим, у меня есть Shell с тремя областями - «OutlookStyleNav», «Главная» и «Панель инструментов».

Как добавить кнопки в область панели инструментов?

Должен ли каждый модуль добавлять свои собственные кнопки в этот регион? (и если да, то как отображать все кнопки модулей на в то же время?)

Если оболочка динамически обнаруживает команды в моих контроллерах и создает на ней кнопки?

Я не уверен. Какие-либо предложения?

ответ

1

В нашем текущем проекте модули публикуют все доступные панели инструментов и действия меню, и панель инструментов подписывается на эти события «ActionAvailable». События имеют делегат (который должен вызываться при нажатии кнопки панели инструментов), описание действия (= текст подсказки), значок и т. Д.

Таким образом, ни оболочка не имеет прямой зависимости от модулей, ни модули имеют зависимость от оболочки.

+0

Хороший совет. Я пошел немного другим путем ... Я построил ShellController (и, очевидно, интерфейс IShellController). Интерфейс вводится в модули. Затем модули регистрируют свои кнопки на панели инструментов с помощью команды IShellController.RegisterToolbar (команда ICommand). Тем не менее, это не так тесно связано с вашей реализацией. – willem

 Смежные вопросы

  • Нет связанных вопросов^_^