PRISM View Injection / Navigation в одном модуле - PullRequest
0 голосов
/ 27 мая 2010

Это ModuleInit.cs в модуле продуктов

public class ModuleInit : IModule
{
    private readonly IUnityContainer _container;
    private readonly IRegionManager _regionManager;

    public ModuleInit(IUnityContainer container, IRegionManager regionManager)
    {
        _container = container;
        _regionManager = regionManager;
    }

    #region IModule Members
    public void Initialize()
    {
        App app = (App)Application.Current;
        _regionManager.RegisterViewWithRegion(RegionNames.ModuleRegionProducts, () => _container.Resolve<Views.ProductsCycle>());
    }
    #endregion
}

Ниже приведен обработчик события кнопки в ProductsCycle.cs для перехода к другому представлению в том же модуле:

private void btnForward_Click(object sender, RoutedEventArgs e)
    {
        IRegion productsRegion = _regionManager.Regions["ModuleRegionProducts"];

        var productsListView = _container.Resolve<Views.ProductsList>();
        productsRegion.Add(productsListView, "ProductsList");

        productsRegion.Activate(productsListView);
    }

Состояние : страница ProductsCycle успешно загружается при первой загрузке.

Проблема : Вид не изменяется со страницы ProductCycle на страницу ProductsList при нажатии btnForward.

Я использую Silverlight 4 и PRISM2. Пожалуйста, ваш совет, спасибо.

1 Ответ

0 голосов
/ 02 июня 2010

изменить productsRegion.Activate(productsListView);

на productsRegion.Remove(this);

, поскольку мой productListView не наследуется напрямую от UserControl.

...