2009-12-01 27 views
30

プロパティの値に基づいて、データバインド内の項目を無効にできるかどうか、誰でも知ることができますかListBoxプロパティ値に基づいてデータバインドされたListBoxアイテムを無効にする方法はありますか?

好ましく私は、特定のプロパティがfalseで、DataTriggerをしたいと思い、ListBox内の他の項目に影響を与えることなく、(選択することは不可能)、この項目を無効にします。

<ListBox> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <TextBlock Name="textBlock" Text="{Binding Description}"/> 
     <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding IsEnabled}" Value="False"> 
      ?? 
     </DataTrigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

答えて

62

あなたはItemContainerStyleを使用することができます。

<ListBox> 
    <ListBox.ItemContainerStyle> 
    <Style TargetType="{x:Type ListBoxItem}"> 
     <Style.Triggers> 
     <DataTrigger Binding="{Binding YourPropertyName}" Value="False"> 
      <Setter Property="IsEnabled" Value="False"/> 
     </DataTrigger> 
     </Style.Triggers> 
    </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 
+0

は素晴らしい作品!また、SurfaceListBoxコントロールでも動作します – GibboK

+0

必要に応じて動作します。選択を無効にする方法を知っていますが、有効にするアイテムテンプレートのボタンはまだありますか? –

関連する問題