Estoy construyendo una aplicación de demostración para aprender las funciones de navegación de Prism 4. La aplicación tiene dos módulos - cada uno tiene tres vistas:Prisma 4: RequestNavigate() no funciona
- un control de usuario con un texto bloque ("Bienvenido al Módulo a")
- un RibbonTab (utilizando un adaptador Región), y
- un botón de tareas estilo Outlook (como correo de Outlook, calendario, etc.)
La Shell tiene tres regiones nombradas: "RibbonRegion", "TaskB" uttonRegion "y" WorkspaceRegion ". Las Vistas se cargan en estas regiones. Para probar la configuración básica, registré las tres Vistas con el Administrador de Región de Prisma, para que se cargaran al inicio, y todo funcionó como se esperaba.
A continuación, modifiqué la configuración para que solo los botones de tareas se cargaran al inicio. Otras vistas solo se cargarían si se solicita, al hacer clic en un botón de Tarea. Mis inicializadores módulo aspecto:
public void Initialize()
{
/* We register the Task Button with the Prism Task Button Region because we want it
* to be displayed immediately when the module is loaded, and for the lifetime of
* the application. */
// Register Task Button with Prism Region
m_RegionManager.RegisterViewWithRegion("TaskButtonRegion", typeof(ModuleATaskButton));
/* We register these objects with the Unity container because we don't want them
* instantiated until we navigate to this module. */
// Register View and Ribbon Tab as singletons with Unity container
m_Container.RegisterType(typeof(ModuleAView), "ModuleAView", new ContainerControlledLifetimeManager());
m_Container.RegisterType(typeof(ModuleARibbonTab), "ModuleARibbonTab", new ContainerControlledLifetimeManager());
}
Cuando el usuario hace clic en un botón de tareas, invoca un objeto ICommand que llama IRegionManager.RequestNavigate()
para mostrar los puntos de vista:
El comando se invoca cuando una tarea se hace clic en el botón, pero lo que me pasa es lo siguiente:
El control de usuario está cargando parecer como System.Object
, y sospecho que RibbonTab está cargando lo mismo. Creo que el problema es con mi llamada RequestNavigate()
, o mi registro con Unity. Pero no puedo identificar el problema.
¿Alguien puede arrojar algo de luz sobre lo que está pasando? Gracias por tu ayuda.
¿te importaría echarle un vistazo? http://stackoverflow.com/questions/18309661/navigation-not-occurring –