Как получить RegionManager в загрузчике в Prism - PullRequest
4 голосов
/ 21 января 2012

У меня возникла проблема при использовании метода

this.regionManager.RegisterViewWithRegion("TextRegion", typeof(TextView));

Если я напишу приведенный выше код в загрузочном стриппере каким-либо способом. Это не работает, потому что я не могу получить объект regionmanager из кода

IRegionManager manager = this.Container.Resolve<IRegionManager>();

Выше кода выдает исключение «Сообщение об исключении: текущая операция сборки (ключ сборки ключ сборки [Microsoft.Practices.Composite.Regions.IRegionManager, null]) не выполнена: текущий тип Microsoft.Practices.Composite.Regions. IRegionManager, является интерфейсом и не может быть создан. Вам не хватает отображения типов? "

Но приведенный выше код работает, я помещаю его в некоторую ViewModel и внедряю в него IRegionManager.

как

 public HeaderControlViewModel(IEventAggregator aggregator, IRegionManager regionManager)
        : base(aggregator)
    {
        this.regionManager = regionManager;
        this.regionManager.RegisterViewWithRegion("TextRegion", typeof(TextView));
    } 

Но я не хочу этого делать. Я хочу, чтобы все было настроено только с помощью загрузчика.

Скажите, пожалуйста, почему загрузчик не может получить объект RegionManager? Как я могу решить эту проблему?

Заранее большое спасибо ...

1 Ответ

0 голосов
/ 04 ноября 2016

// ... App.xaml.cs

   public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            Bootstrapper bs = new Bootstrapper();
            bs.Run();
            bs.ShowDefault();
        }
    }

// ... Bootstrapper.cs

public void ShowDefault()
{
   RegionManager.GetRegionManager(Application.Current.MainWindow)
.RequestNavigate("MainRegion", "ViewA");
}

// ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...