Как получить вид из региона в PRISM? - PullRequest
2 голосов
/ 23 февраля 2012

Я использую PRISM и пытаюсь получить представление, но возвращает null функцию GetView().

Что я делаю не так?

    public void Initialize()
    {
        _regionManager.RegisterViewWithRegion("TopLeftRegion", () => _container.Resolve<View1>());
        _container.RegisterType<Object, View1>("ViewB");

        var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
    }

1 Ответ

5 голосов
/ 23 февраля 2012

Причина, по которой он возвращает null, заключается в том, что нет представлений с именем "ViewB". Когда вы используете RegisterViewWithRegion, Prism активирует новый экземпляр типа представления (в вашем случае View1>. Однако нет способа назвать этот экземпляр для коллекции представлений, используя эту технику.

Чтобы выполнить то, что вы хотите сделать, вам нужно добавить представление , которое вы создаете для себя , в регион.

_regionManager.Regions["TopLeftRegion"].Add(new View1(),"ViewB");

var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");

Более подробную информацию можно найти здесь

...