Cómo usar Prisim dentro de un ElementHost
Soy nuevo en Prism y estoy intentando alojar un control Prisim dentro de un ElementHost. Parece que me falta algo muy básico. Tengo un solo WinForm que contiene un ElementHost. El siguiente código está en el formulario:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
var child = bootstrapper.Container.Resolve<Shell>();
elementHost.Child = child;
}
El BootStrapper maneja la regisración.
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;
}
}
MyView.xaml no es más que una etiqueta en este punto.
Shell.xaml es un UserControl que contiene el siguiente XAML:
<ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" />
El código del módulo es mínimo:
public class MyModule : IModule
{
private readonly IRegionViewRegistry _regionViewRegistry;
public MyModule(IRegionViewRegistry registry)
{
_regionViewRegistry = registry;
}
public void Initialize()
{
_regionViewRegistry.RegisterViewWithRegion("MainRegion", typeof(MyView));
}
}
He estado rastreando profundamente en el código Prism tratando de averiguar por qué la Vista nunca se establece en la región. ¿Me estoy perdiendo algo básico?