Нужна помощь с приложением Microsoft Prism - PullRequest
2 голосов
/ 22 июня 2011

Я создаю новое приложение Prism4 с MEF, и оно прекрасно работает. Я создал Shell и т. Д., И все в порядке.

Но теперь мне нужно создать новое окно с Region внутри него, но кажется, что регион не зарегистрирован в RegionManager (см. Событие Window_Closing) и регион в окне работают хорошо, потому что отображаются введенные в него виды.

Вот код для нового окна

Wizard.xaml

<DockPanel LastChildFill="True">
  <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" DockPanel.Dock="Bottom">
    <Button Content="_Previous" Margin="0, 0, 10, 0" /> 
    <Button Content="_Next" /> 
  </StackPanel> 
  <ContentControl cal:RegionManager.RegionName="WizardStepsRegion" /> 
</DockPanel>

Когда я пытаюсь получить регион окна, я получаю следующее исключение: «KeyNotFoundException не было обработано кодом пользователя», «Менеджер региона не содержит регион WizardStepsRegion.»

Wizard.xaml.cs

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{ 
  object asdf = regionManager.Regions["WizardStepsRegion"]; 
}

Почему регион не зарегистрирован в диспетчере региона?

Может кто-нибудь мне помочь?

Спасибо.

1 Ответ

0 голосов
/ 23 июня 2011

Похоже, вы пытаетесь создать диалог. Вы импортируете этот диалог или создаете его с помощью new Wizard()? Если вы создаете его с помощью оператора new, RegionManager ничего о нем не узнает. Вы можете вручную сообщить RegionManager об этом окне, используя SetRegionManager .

RegionManager.SetRegionManager(window, myRegionManager);

Тогда RegionManager узнает все о вашем типе, обнаружит его регионы и т. Д. Другой вариант - импортировать тип мастера и просто .Show(), когда вы хотите, но иногда это не практично.

...