<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编写的。
答案 0 :(得分:24)
<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
属性