2008-11-19 13 views
6

bir özellik (BlahType) 1 olarak ayarlanır ve 0'a Bu ayarlandığında eğer gösteriliyorsa gizli olmalıdır bir sekme sayfası vardır tetikler ben yapmak İSTİYORUM:/ne olduğunu

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

sorundur, bu hatayı alıyorum: o hatayı Google'dan varsa, Dr. WPF explains the error olduğunu göreceksiniz

"Triggers collection members must be of type EventTrigger" 

. Burada yapmaya çalıştığım şeyi yapmanın temiz bir yolu var mı?

cevap

13

Bir denetimin Tetikleyiciler koleksiyonu yalnızca şu anda EventTriggers destekler inanıyoruz. Eğer bir DataTrigger kullanmak isterseniz basitçe örneğin bir tarzda içine yerleştirin:

<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

Sen ... hafif bir yazım hatası var "" olmalıdır "" ... bu harika, teşekkürler! –

+0

Doğru, onu aldığın için teşekkürler! –

0

Eh, bunu yapamaz (bir DataTemplate, ControlTemplate veya Stil içerde değil sürece) tetikleyicileri kullanarak.

Bir ciltleme kullanarak bunu yapabilirsiniz, 0/1 ile Görünür/Gizli arasında çeviri yapacak ve sonra Visibility özelliğini BlhaType özelliğine bağlayabilen özel bir ValueConverter yazmanız gerekir.

Ya da sadece kodda Görünürlük ayarlamak ve XAML tabanlı yaklaşıma kadar verebilirsiniz (Ben yapardım o).