El uso de PRISM, ¿cómo puedo mostrar la vista de otro módulo, y el acceso a sus propiedades para actualizar su estado?

StackOverflow https://stackoverflow.com/questions/2342256

  •  23-09-2019
  •  | 
  •  

Pregunta

Tengo dos módulos, uno es un módulo de cabecera, uno es un módulo de artículos.

Tengo un HeaderDetails ver, que contiene una región que se llama 'ItemsSummaryRegion'. Esta región se ha registrado para poblar la región con la vista ItemListView desde el módulo de artículos.

regionManager.RegisterViewWithRegion("ItemsSummaryRegion", typeof(IItemListView));

La cuestión es, ¿cómo puedo obtener acceso a este punto de vista se genera automáticamente para que pueda establecer la lista de los artículos que se supone que la pantalla? Quiero configurar esto en el modelo de vista de los HeaderDetails ver.

Alguien sabe

hace ¿Cómo se hace esto? O puede sugerir una mejor manera de mostrar estos datos?

Gracias.

¿Fue útil?

Solución

Si los dos módulos están tan estrechamente unidas, ¿no tendría más sentido tener sólo un módulo que contiene ambos puntos de vista, y para ponerlos en marcha con el maestro / detalle.

Este ejemplo muestra algo similar de lo que está tratando de lograr: http://www.tanguay.info/web/index.php? pg = codeExamples & id = 105

Otros consejos

Se debe utilizar la unityContainer para crear cosas y luego llamar Añadir y activar.

    public TaskList(IEventAggregator eventAggregator, 
                    IRegionManager regionManager, 
                    IUnityContainer container)
    {
        _EventAggregator = eventAggregator;
        _RegionManager = regionManager;
        _Container = container;
    }


        IItemListVM vm = _Container.Resolve<IItemListVM>();
        IItemListView view = new IItemListView(vm);

        _RegionManager.Regions["ItemsSummaryRegion"].Add(view);
        _RegionManager.Regions["ItemsSummaryRegion"].Activate(view);

Esto le permite llamar a IRegion.Remove más tarde, cuando desea borrar la región. Si lo que desea es registrar una región con una vista, puede hacer eso también, basta con sustituir el último par de líneas de mi lógica con la otra llamada a RegisterViewWithRegion:

_RegionManager.RegisterViewWithRegion("ItemsSummaryRegion", 
     (x) => 
     { 
          _Container.Resolve<IItemListView>(); 
     });
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top