如何在wpf中基于其他组合框禁用组合框

时间:2015-06-25 16:09:01

标签: wpf wpf-controls

我在同一个wpf窗口中有2个组合框。第一个组合框中的第一项是selectversion,默认选择它(isselected = true)。现在,如果选择第一个组合框的第一项,则需要禁用第二个组合框否则启用。

我试过了,

if(absversion.selectedindex!= 0)

Secondcombo.isenabled = false://这里我得到空引用异常

否则   Secondcombo.isenabled = true:

在page_loaded事件中,

Secondcombo.isenabled = false //因此默认情况下会禁用Secondcombo。

有人可以帮助我,完成这项工作。

1 个答案:

答案 0 :(得分:3)

我更倾向于在XAML中执行此操作而不是在代码隐藏中执行此操作:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <ComboBox Grid.Row="0" x:Name="ComboBox1">
        <ComboBoxItem>Item 1</ComboBoxItem>
        <ComboBoxItem>Item 2</ComboBoxItem>
        <ComboBoxItem>Item 3</ComboBoxItem>
    </ComboBox>
    <ComboBox Grid.Row="1">
        <ComboBox.Style>
            <Style TargetType="{x:Type ComboBox}">
                <Setter Property="IsEnabled" Value="True" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=ComboBox1, Path=SelectedIndex}" Value="0">
                        <Setter Property="IsEnabled" Value="False" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ComboBox.Style>
        <ComboBoxItem>Item 1</ComboBoxItem>
        <ComboBoxItem>Item 2</ComboBoxItem>
        <ComboBoxItem>Item 3</ComboBoxItem>
    </ComboBox>
</Grid>