我有两个ComboBox,我想在选择First ComboBox时启用第二个ComboBox。我尝试添加IsEnabled
属性,但似乎无法正常工作。我试过的代码如下。
<dxe:ComboBoxEdit Name="siteComboBox" HorizontalAlignment="Left" Margin="97,104,0,0"
VerticalAlignment="Top" Width="150" ItemsSource="{Binding Site}"
SelectedItem="{Binding SelectedSite}"/>
<dxe:ComboBoxEdit Name="planTypeComboBox" HorizontalAlignment="Left" Margin="97,159,0,0"
VerticalAlignment="Top" Width="150"
ItemsSource="{Binding PlanType}" SelectedItem="{Binding SelectedPlanType}"
IsEnabled="{Binding ElementName=siteComboBox}"/>
有谁可以指出我做错了什么?或者还有其他办法吗?
答案 0 :(得分:2)
您可以使用DataTriggers。当所选项目为空时,将禁用第二个ComboBox
<dxe:ComboBoxEdit Name="siteComboBox" HorizontalAlignment="Left" Margin="97,104,0,0"
VerticalAlignment="Top" Width="150" ItemsSource="{Binding Site}"
SelectedItem="{Binding SelectedSite}"/>
<dxe:ComboBoxEdit Name="planTypeComboBox" HorizontalAlignment="Left" Margin="97,159,0,0"
VerticalAlignment="Top" Width="150"
ItemsSource="{Binding PlanType}" SelectedItem="{Binding SelectedPlanType}">
<dxe:ComboBoxEdit.Style>
<Style TargetType="{x:Type dxe:ComboBoxEdit}">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=siteComboBox, Path=SelectedItem}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</dxe:ComboBoxEdit.Style>
</dxe:ComboBoxEdit>
编辑:如果您使用隐式主题,则定义的样式必须从主题样式继承:
<dxe:ComboBoxEdit Name="siteComboBox" HorizontalAlignment="Left" Margin="97,104,0,0"
VerticalAlignment="Top" Width="150" ItemsSource="{Binding Site}"
SelectedItem="{Binding SelectedSite}"/>
<dxe:ComboBoxEdit Name="planTypeComboBox" HorizontalAlignment="Left" Margin="97,159,0,0"
VerticalAlignment="Top" Width="150"
ItemsSource="{Binding PlanType}" SelectedItem="{Binding SelectedPlanType}">
<dxe:ComboBoxEdit.Style>
<Style TargetType="{x:Type dxe:ComboBoxEdit}" BasedOn="{StaticResource {x:Type dxe:ComboBoxEdit}}">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=siteComboBox, Path=SelectedItem}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</dxe:ComboBoxEdit.Style>
</dxe:ComboBoxEdit>
答案 1 :(得分:1)
ComboBox
没有IsChecked
属性。所以绑定不起作用。
您可以设置另一个属性IsSiteSelected
,当SelectedSite
不为空时返回true并改为绑定到该属性。
答案 2 :(得分:0)
对于第二个组合框,当第一个组合框的SelectedIndex不为-1时设置IsEnabled 或者为第一个组合框定义SelectionChanged事件并在后端启用/禁用第二个组合框