2012-01-30 3 views
2

Im с использованием призмы 4.0 МОФ,призма навигации: Я могу requestnavigate только одной конкретной точки зрения

Я создаю RegionAdapter для DevX DocumentGroup.

У меня есть представление, которое отображается как содержимое DocumentPanel (дочерний элемент DocumentGroup). Я регистрирую вид в контейнере. все в порядке. Я могу запросить просмотр в области DocumentGroup.

container.RegisterType<Object, NatLossesView>("NatLossesView",new TransientLifetimeManager()); 

Проблема: я могу создать только один вид в DocumentGroup элементов. Например, моя программа загружена, на панели нет документа. я

var NatLossesViewU = new Uri("NatLossesView", UriKind.Relative); regionManager.RequestNavigate("DocumentGroupRegion", NatLossesViewU);

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

решаемые

Я решил мою проблему сам. ViewModel должен реализовать интерфейс INavigationAware. метод IsNavigationTarget должен быть таким:

public bool IsNavigationTarget(NavigationContext navigationContext) 
{ 
      //throw new NotImplementedException(); 
      return false; 
} 

ответ

1

предполагая в вашем регионе adpater вы, убедившись, что добавленный вид правильно добавлен к вашему docnwindowgroup списку пунктов - попробуйте следующий код,

var NatLossesViewobj = _container.Resolve<NatLossesView>() 
regionManager.AddToRegion("DocumentGroupRegion", NatLossesViewobj); 
+0

Да, вы правы , вот как я теперь добавляю представления, он действительно работает, спасибо. Но есть проблема. Таким образом, мне нужна прямая ссылка на модуль, который имеет это представление. Я не хочу иметь ссылки между модулями :-( –

+0

@Yuriy, не могли бы вы просто переместить представление в библиотеку управления? –

+0

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

Смежные вопросы