2013-03-30 14 views
5

Wie Sie aus dem obigen Code entnehmen können, legt ContentControl seinen Inhalt durch Bindung an die Screen-Eigenschaft von ViewModel fest. Die Bildschirmeigenschaft gibt abhängig von einer Bedingung eine Instanz von AViewModel oder BViewModel zurück. Das Problem besteht darin, dass beim Laden von UserControl auf dem Bildschirm die Screen-Eigenschaft null ist und daher noch kein Inhalt festgelegt wurde. An dieser Stelle möchte ich etwas Hintergrund für das ContentControl festlegen, aber ich finde keinen Weg, wie das geht? Hintergrund = "Gelb" tut nichts ...Hintergrund der Inhaltssteuerung festlegen

Irgendwelche Ideen, wie man den Hintergrund von ContentControl einstellt? Dieser Hintergrund sollte immer angewendet werden, auch wenn der Inhalt AView oder Biew oder null anzeigt.

Antwort

5

wickeln Sie Ihre ContentControl in einem Border

<Border Background="Yellow"> 
    <ContentControl x:Name="chartScreen" 
        Content="{Binding Screen}" /> 
</Border> 

Wenn alles, was Sie in Ihrem UserControl haben Ihr ist ContentControl, nur die Background auf der sich UserControl gesetzt. Das würde auch die extra Border entfernen.

1

versuchen, dies so etwas wie:

<ContentControl x:Name="chartScreen" Content="{Binding Screen}" Background="Yellow"> 
     <ContentControl.Triggers>  
      <Trigger Property="Content" Value="{x:Null}"> 
       <Trigger.Value> 
        <Border Background="Yellow"/> 
       </Trigger.Value> 
      </Trigger> 
     </ContentControl.Triggers>  
</ContentControl> 
+0

i @ im Nachhinein Antwort des Viv mag .. –

+0

ich Ihnen so hilfreiche Antwort markieren, obwohl es doesn beantworte die Frage nicht ganz. Wenn Sie den letzten Teilsatz lesen, sollte der Hintergrund immer angewendet werden, nicht nur dann, wenn der Inhalt null ist. – Goran

+0

oo .. ich habe diesen Teil verpasst. –

0

versuchen so etwas wie dies in WPF:

<ContentControl> 
     <ContentControl.Style> 
     <Style TargetType="ContentControl"> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding Content}" Value="{x:Null}"> 
       <Setter Property="Content"> 
       <Setter.Value> 
        <Rectangle Width="100" Height="100" Fill="Blue" /> 
       </Setter.Value> 
       </Setter> 
      </DataTrigger> 
      </Style.Triggers> 
     </Style> 
     </ContentControl.Style> 
</ContentControl> 
Verwandte Themen