2011-12-25 15 views
7
<Window.Resources> 
    <DataTemplate x:Key="IpInfoTemplate"> 
     <DockPanel> 
      <TextBlock Text="{Binding Path=InterfaceName}" DockPanel.Dock="Left" Margin="0,0,10,0" /> 
      <TextBlock Text="{Binding Path=Address}"/> 
     </DockPanel> 
    </DataTemplate> 
</Window.Resources> 

<ComboBox ItemTemplate="{StaticResource IpInfoTemplate}" 
     ItemsSource="{Binding Source={x:Static WpfApplication1:App.IpInfoList}, Mode=OneWay}">  
</ComboBox> 

Questo codice ha vincolato App.IpInfoList a ComboBox.Associazione di una raccolta a WPF ComboBox e disabilitazione di alcuni articoli

IpInfo classe ha una proprietà bool Enabled. Il requisito è che impostare ComboBoxItem.IsEnabled=false (in modo che gli utenti non possano selezionarlo) quando corrisponde a IpInfo.Enable==false.

Spero che tutto il codice sia scritto in XAML.

risposta

23
<ComboBox ItemTemplate="{StaticResource IpInfoTemplate}" 
      ItemsSource="{Binding Source={x:Static WpfApplication1:App.IpInfoList}, Mode=OneWay}"> 
    <ComboBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ComboBoxItem}"> 
      <Setter Property="IsEnabled" Value="{Binding Enabled}"/> 
     </Style> 
    </ComboBox.ItemContainerStyle> 
</ComboBox> 

Si lega ComboBoxItem.IsEnabled proprietà per la vostra proprietà IpInfo.Enabled

+0

Grande, funziona! – Gqqnbig

Problemi correlati