Como usar Prisim dentro de um ElementHost
Sou novo no Prism e estou tentando hospedar um controle Prisim em um ElementHost. Parece que estou perdendo algo muito básico. Eu tenho um único WinForm que contém um ElementHost. O código a seguir está no formulário:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
var child = bootstrapper.Container.Resolve<Shell>();
elementHost.Child = child;
}
O BootStrapper lida com regisration
public class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
Container.RegisterType<MyView>();
var shell = Container.Resolve<Shell>();
return shell;
}
protected override IModuleCatalog GetModuleCatalog()
{
ModuleCatalog catalog = new ModuleCatalog();
catalog.AddModule(typeof(MyModule));
return catalog;
}
}
O MyView.xaml nada mais é do que um rótulo neste momento.
Shell.xaml é um UserControl que contém o seguinte XAML:
<ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" />
O código do módulo é mínimo:
public class MyModule : IModule
{
private readonly IRegionViewRegistry _regionViewRegistry;
public MyModule(IRegionViewRegistry registry)
{
_regionViewRegistry = registry;
}
public void Initialize()
{
_regionViewRegistry.RegisterViewWithRegion("MainRegion", typeof(MyView));
}
}
Eu tenho vindo a investigar profundamente o código Prism tentando descobrir por que o View nunca é colocado na região. Eu estou sentindo falta de algo básico?