2015-04-21 5 views
1

Я удалил свой предыдущий вопрос, чтобы правильно перефразировать, так как мой предыдущий пост не был ни полезным, ни полным, imo.WPF UserControl Not Displaying

Для ясности: Я использую структуру Prism и соблюдаю строгий шаблон MVVM.

Проблема: Когда я загружаю UserControl, определенный в некотором модуле, ModuleA, он не отображается в Shell зрения. Однако, если я загружу свой UserControl в пределах ItemsControl, элементы, которые я определил, появляются, но все они «сплющены вместе».

В ModuleA, у меня есть следующий UserControl:

<UserControl ... 
      ...> 

... 

<Grid> 
    ... My Content Here ... 
</Grid> 
</UserControl> 

Теперь в моем проекте, я определил Shell таким образом:

<Window ... 
     ...> 

... 

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="10"/> 
     <RowDefinition Height="10"/> 
     <RowDefinition Height="10"/> 
    </Grid.RowDefinitions> 

    <Border Grid.Row="0" .../> 

    <UserControl Grid.Row="1" prism:RegionManager.RegionName="ModuleARegion"/> 

    <Border Grid.Row="2" .../> 

</Grid> 
</Window> 

Теперь, в этом случае, все нагрузки, и ModuleA распознается, но на экране ничего не появляется.

Однако, если я изменю <UserControl Grid.Row="0" prism:RegionManger .../> к <ItemsControl Grid.Row="0" prism:RegionManager .../>, я могу видеть содержание я изложил в моем ModuleAUserControl, но содержание все "сплющенные вместе.

У кого-нибудь есть идеи, почему это может произойти?

+1

Вы уверены, что '' RowHeight' являются '10' пикселями? возможно, вы должны попробовать что-то другое или 'Auto' или' * 'вместо – bit

+0

Я говорю о RowDefinition * – bit

+0

@bit Да, я просто использовал 10 для этого примера. Это может быть то, что вы хотите. Дело в том, что ничто не отображается в 1-й (0-индексированной) строке. – Bryant

ответ

2

Адаптеры по умолчанию в Призме не поддерживают UserControl. Вам нужно использовать ContentControl, ItemsControl или элемент управления на основе Selector, например ComboBox, чтобы получить поддержку из окна или написать свой собственный региональный адаптер.

Примечание: адаптер региона используется для добавления и удаления элементов управления из регионов определенного типа управления при взаимодействии с его регионами.