2009-12-01 17 views
30

Czy ktoś wie, czy i jak można wyłączyć elementy w bazie danych ListBox w oparciu o wartość właściwości?Jak wyłączyć element listBox databound na podstawie wartości właściwości?

Korzystnie Chciałbym DataTrigger które gdy pewna właściwość jest false, wyłącza tę pozycję (uniemożliwić aby wybrać) bez wpływu na inne elementy w 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> 

Odpowiedz

62

Można użyć 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

Działa świetnie! Działa również na kontrolerze SurfaceListBox – GibboK

+0

Działa tak, jak powinien. Czy wiesz, w jaki sposób mogę wyłączyć wybór, ale nadal mam przycisk wewnątrz szablonu przedmiotu, który ma być włączony? –

Powiązane problemy