2013-03-17 3 views
0

У меня есть два UserControl's,Изменение пользовательского элемента управления связыванием

Я хотел бы, в зависимости от значения в моем ViewModel, чтобы отобразить еще один UserControl каждый раз.

Они должны сидеть в UserControl, который их обертывает.

Как я могу это сделать?

Здесь обертка:

<UserControl> 
    <local:UserControl1></local:UserControl1>// I want it to change by a binding 
</UserControl> 

ответ

1

Сделайте это с помощью DataTrigger. Это память, но может вам помочь:

<ContentControl> 
    <ContentControl.Style> 
     <Style TargetType="ContentControl"> 
      <Setter Property="Content"> 
       <Setter.Value> 
        <local:UserControl1 /> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding BoolProperty}" Value="True"> 
        <Setter Property="Content"> 
         <Setter.Value> 
          <local:UserControl2 /> 
         </Setter.Value> 
        </Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ContentControl.Style> 
</ContentControl> 
+0

Звучит здорово, спасибо. –

+1

Может понадобиться добавить TargetType к стилю. Я набрал весь ответ, используя экранную клавиатуру этой Surface RT. Было непросто! –

+0

Еще один вопрос: какой тип TargetType должен находиться в этой строке: '