Первый:
Где вы добавляете свои виды и модели просмотра в Unity? Вы должны делать это как часть инициализации вашего модуля. Каждый из ваших модулей Prism должен иметь один класс, который реализует IModule
.
Предполагая, что вы сделали это:
Читая код выше, я вижу, что создается регион, но вы не добавили Xaml для элемента управления, который будет привязан к этому региону.
например, я бы ожидал увидеть следующее в командной строке:
<UserControl>
<Grid>
<ItemsControl Margin="0,20,0,0" cal:RegionManager.RegionName="MainWindowRegion" />
</Grid>
</UserControl>
Это создаст MainWindowRegion
и свяжет его с ItemsControl
на странице. Когда этот пользовательский элемент управления был загружен, его регион был бы зарегистрирован в Prism и добавлен к значению по умолчанию RegionManager
.
Если вам нужно создать свой собственный регион вручную, то он, вероятно, не привязан к элементу управления, поэтому, когда вы начинаете добавлять представления в регион, они не будут отображаться, потому что регион не связан с элементом управления.
Глядя на разрешение view/viewmodel
, есть более простой способ:
Пусть SomeView
примет параметр SomeViewModel
в своем конструкторе, а затем привяжет его к DataContext
. Unity увидит, что SomeView
имеет зависимость, и автоматически разрешит ее ...