2015-10-29 1 views
0

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

мой Загрузчик выглядит следующим образом:

protected override DependencyObject CreateShell() 
    { 
     return this.Container.Resolve<MainWindowView>(); 
    } 

    protected override void InitializeShell() 
    { 
     Application.Current.MainWindow.Show(); 
    } 

    protected override void ConfigureContainer() 
    { 
     base.ConfigureContainer(); 

     this.Container.RegisterTypeForNavigation<WorkTypeSelectionView>(); 
    } 

и мой ViewModel:

public MainWindowViewModel(IEventAggregator eventAggregator, IRegionManager regionManager) 
    { 

     this.eventAggregator = eventAggregator; 
     this.regionManager = regionManager; 
     this.AuthenticateUser(); 

     if (this.LoggedUser.AvailableWorkTypes.Count > 1) 
     { 
      this.Navigate(nameof(WorkTypeSelectionView)); 
     } 
    } 

    private void Navigate(string obj) 
    { 
     this.regionManager.RequestNavigate(DefaultContentRegion, obj); 
    } 

заранее спасибо!

EDIT:

Guess я просил неправильный вопрос, нашел этот https://stackoverflow.com/a/7887936/171136 все еще хочет, чтобы изучить другие варианты. Благодаря!

ответ

1

Вы можете использовать View Discovery с regionManager.RegisterViewWithRegion("RegionName", typeof(View));. Когда регион будет создан, он автоматически добавит представление.

+1

Какое колдовство это? оно работает; теперь, когда я обращаю ваше внимание, как мне регистрировать регионы в пользовательских элементах управления или шаблонах управления? – Luiscencio

+0

Задайте новый вопрос: –

+0

Сделано! http://stackoverflow.com/q/33425115/171136 :) – Luiscencio

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

  • Нет связанных вопросов^_^