Usando o Prism, como faço para exibir a visualização de outro módulo e acessar suas propriedades para atualizar seu estado?
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.
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>();
});