Usando o Prism, como faço para exibir a visualização de outro módulo e acessar suas propriedades para atualizar seu estado?

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

  •  23-09-2019
  •  | 
  •  

Pergunta

Eu tenho dois módulos, um é um módulo de cabeçalho, um é um módulo de itens.

Eu tenho uma visão de headerDetails, que contém uma região que é chamada de 'itens Summeryregion'. Esta região está registrada para preencher a região com o View ItemListView do módulo de itens.

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

A questão é: como faço para obter acesso a essa visualização gerada automaticamente para que eu possa definir a lista de itens que ele deve exibir? Quero definir isso no ViewModel da Visualização do HeaderDetails.

Alguém sabe como você faz isso? Ou pode sugerir uma maneira melhor de exibir esses dados?

Obrigada.

Foi útil?

Solução

Se seus dois módulos estiverem tão bem acoplados, não faria mais sentido ter apenas um módulo contendo as duas visões e configurá -las com mestre/detalhes.

Este exemplo mostra algo semelhante do que você está tentando alcançar:http://www.tanguay.info/web/index.php?pg=codeexamples&id=105

Outras dicas

Você deve usar o UnityContainer para criar coisas e depois ligar para adicionar e ativar.

    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);

Isso permite que você ligue IRegion.Remove Mais tarde, quando você deseja limpar a região. Se você deseja apenas registrar uma região com uma exibição, também pode fazer isso, basta substituir as últimas linhas da minha lógica pela outra chamada para registrar RegisterViewWithregion:

_RegionManager.RegisterViewWithRegion("ItemsSummaryRegion", 
     (x) => 
     { 
          _Container.Resolve<IItemListView>(); 
     });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top