У меня есть составное приложение с панелью инструментов, и я хочу, чтобы мои модули могли добавлять некоторые кнопки на панель инструментов. Насколько я понял, для обеспечения такой возможности следует использовать RegionManager.
Я написал такой код:
public class MyModule : IModule
{
private readonly IUnityContainer _container;
public MyModule(IUnityContainer Container) { _container = Container; }
public void Initialize()
{
var regionManager = _container.Resolve<RegionManager>();
regionManager.RegisterViewWithRegion("MainToolbar",
() => new Button
{
Content = "My Button",
Command = new DelegateCommand(/* */)
});
}
}
Но похоже, что создавать кнопки из кода, особенно внутри класса модуля, не очень хорошая идея, согласно шаблону MVVM. И вторая проблема заключается в том, что кнопка создается до инициализации других модулей, поэтому я не могу ссылаться на сервисы, зарегистрированные другими модулями.
Что именно я делаю неправильно? Как правильно собрать действия из нескольких модулей в одну панель инструментов?