2011-12-12 47 views
0

我有一個TextBlock - 默認情況下摺疊,只有當它滿足兩個條件時纔可見。如何解決默認情況下摺疊文本塊的可見性......並根據條件切換?

我有以下XAML相同。但它沒有按預期工作。

任何幫助,將不勝感激。感謝

<TextBlock Text="{Binding Path=CC.Name}" VerticalAlignment="Center" FontWeight="Bold" Margin="0,0,10,0" Visibility="Collapsed"> 
    <TextBlock.Style> 
     <Style> 
      <Style.Triggers> 
       <MultiDataTrigger> 
        <MultiDataTrigger.Conditions>         
         <Condition Binding="{Binding Path=IsP}" Value="True" />  
          <Condition Binding="{Binding Path=IsC}" Value="True" /> 
         </MultiDataTrigger.Conditions> 

         <Setter Property="TextBlock.Visibility" Value="Visible"/> 

        </MultiDataTrigger>       
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

回答

2

,你必須使用此setter:

<TextBlock Text="{Binding Path=CC.Name}" VerticalAlignment="Center" FontWeight="Bold" Margin="0,0,10,0"> 
    <TextBlock.Style> 
     <Style> 
      <Setter Property="TextBlock.Visibility" Value="Collapsed"/> 
      <Style.Triggers> 
       <MultiDataTrigger> 
        ... 
       </MultiDataTrigger>       
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+0

不會這樣工作... –

+0

你爲什麼這麼認爲?) – Anthony

+0

Tsss ........... –

4

哦,如預期,不過那可能並不是什麼預期工作。關鍵是dependency property precedence。 「本地值」(在元素標記中設置)會覆蓋樣式嘗試執行的所有操作。您需要將這些屬性提取到樣式設置器,該設置器的優先級低於樣式觸發器。

+0

我知道優先規則..但從來不知道如何克服它:) ..非常感謝 – Relativity

+0

不客氣。 –

相關問題