Привязка коллекции к WPF ComboBox и отключение некоторых элементов - PullRequest
8 голосов
/ 25 декабря 2011
<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>

Этот код связал App.IpInfoList с ComboBox.

IpInfo класс имеет свойство bool Enabled.Требуется установить ComboBoxItem.IsEnabled=false (чтобы пользователи не могли его выбрать) при соответствующем IpInfo.Enable==false.

Я надеюсь, что весь код написан на XAML.

1 Ответ

26 голосов
/ 28 декабря 2011
<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>

Привязывает ComboBoxItem.IsEnabled свойство к вашему IpInfo.Enabled свойству

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...