2009-12-01 70 views
30

有誰知道是否以及如何根據屬性的值禁用數據綁定ListBox中的項目?如何根據屬性值禁用數據綁定列表框項目?

最好我想要一個DataTrigger,當某個屬性爲false時,在不影響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

按原樣工作。你知道我如何禁用選擇,但仍然有項目模板內的按鈕被啓用? –

相關問題