/ / Come disabilitare la combobox in base ad altre combobox in wpf - wpf, wpf-controls

Come disabilitare la combobox in base ad altre combobox in wpf - wpf, wpf-controls

Ho 2 combobox in una stessa finestra wpf. Il primo elemento nella prima casella combinata è selectversion ed è selezionato per impostazione predefinita (isselected = true). Ora ho bisogno che la seconda casella combinata sia disabilitata se il primo elemento della prima casella combinata è selezionato Altrimenti abilitato.

Ho provato a seguire,

Se (absversion.selectedindex! = 0)

Secondcombo.isenabled = false: // sto ricevendo un'eccezione di riferimento null

Altro Secondcombo.isenabled = true:

Nell'evento page_loaded ho ve,

Secondcombo.isenabled = false // in modo che Secondcombo venga disabilitato per impostazione predefinita wen caricato.

Qualcuno potrebbe aiutarmi, per farlo.

risposte:

3 per risposta № 1

Sarei più propenso a farlo in XAML piuttosto che in codebehind:

<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>