2010-02-13 89 views
1

一個DataTrigger WPF應用程序,我已經正確綁定一個DataTemplate來,看起來一個XML節點,如:數據綁定到XML在WPF

<answer answer="Tree", correct="false" score="10" /> 

在我的申請,我有它的答案一個TextBlock 。起初,我希望它不可見,但是當XML文件中的正確屬性更改爲「true」時,它必須可見。

我的DataTemplate連接正確,因爲一切正常。例如,如果我更改XML文件中的答案屬性(僅用於測試),它會在我的WPF視圖中更改。但是我在能見度方面遇到了麻煩。這是我的XAML:

<TextBlock Text="{Binding [email protected]}" Visibility="Hidden"> 
    <TextBlock.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding [email protected]}" Value="true"> 
        <Setter Property="TextBlock.Visibility" Value="Visible" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

我猜數據觸發器中的數據綁定工作不正常。任何人都有線索?

回答

2

我遇到了與數據綁定ToggleButtons相同的問題。嘗試刪除Visibility =「False」並將其替換爲另一個處理不正確大小寫的DataTrigger。

1

我認爲問題在於Visibility屬性是硬編碼的。嘗試設置樣式中的可見性:

<TextBlock Text="{Binding [email protected]}"> 
    <TextBlock.Style> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Setter Property="Visibility" Value="Hidden"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding [email protected]}" Value="true"> 
        <Setter Property="TextBlock.Visibility" Value="Visible" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+0

難道他不希望它作爲數據觸發器嗎?如果答案被改變並且又不正確呢?不知道爲什麼用戶會這樣做,但仍然需要考慮。 – Dave 2010-02-13 16:37:33

+0

@Dave,你說得很好。我的回答只是針對他的特定問題和代碼示例。 – Tim 2010-02-13 16:46:08

1

當然,如果您給出特定的其他情況而不僅僅是錯誤,它會起作用。就我而言,它是{x:Null}和值。所以,當它的綁定值存在時,它將是真實的,TextBlock.Visibilty將使用setter值設置,當綁定路徑沒有任何值時,即在我的情況下爲null,它簡單的{x:Null} :)