2008-11-19 29 views
6

我有一個屬性(BlahType)設置爲1,如果設置爲0,這表明,應該被隱藏標籤頁就是我WANT做:我如何有選擇地通過數據綁定設置一個的TabItem的「能見度」 /觸發器

<TabItem Header="Blah"> 
    <TabItem.Triggers> 
     <DataTrigger Binding="{Binding BlahType}" Value="0"> 
      <Setter Property="TabItem.Visibility" Value="Hidden" /> 
     </DataTrigger> 
    </TabItem.Triggers> 
</TabItem> 

的問題是,我得到這個錯誤:

"Triggers collection members must be of type EventTrigger" 

如果谷歌的錯誤,你會看到Dr. WPF explains the error。有沒有一種乾淨的方式來做我想在這裏實現的目標?

回答

13

我相信,一個控制的Triggers集合目前唯一支持EventTriggers。如果您想使用DataTrigger,只需將其放置在樣式中,例如:

<TabItem Header="Blah"> 
    <TabItem.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding BlahType}" Value="0"> 
        <Setter Property="TabItem.Visibility" Value="Hidden" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TabItem.Style> 
</TabItem> 
+0

您有輕微的錯字...「」應該是「」 ...太好了,謝謝! – 2008-11-19 16:47:52

0

嗯,你不能這樣做,使用觸發器(除非你是裏面一個DataTemplate,控件模板或樣式)。

您可以使用綁定來實現,您需要編寫一個自定義的ValueConverter,它將在0/1之間轉換爲Visible/Hidden,然後您可以將Visibility屬性綁定到BlhaType屬性。

或者你也可以在代碼中設置的知名度和在XAML爲基礎的方法放棄(這是什麼我會做)。

相關問題