【发布时间】:2011-06-24 10:42:57
【问题描述】:
我想根据是否在另一个 ComboBox 中选择了一个项目来启用/禁用一个 ComboBox。我可以通过在样式上设置触发器来使其工作,但这会覆盖组合框的自定义全局样式。有没有其他方法可以在不失风格的情况下获得相同的功能?
<ComboBox Grid.Column="1" Grid.Row="1"
Name="AnalysisComboBox"
MinWidth="200"
VerticalAlignment="Center" HorizontalAlignment="Left"
ItemsSource="{Binding Path=AvailableAnalysis}">
<ComboBox.Style>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="IsEnabled" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem,ElementName=ApplicationComboBox}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
【问题讨论】:
-
FWIW,我得到了这种风格,我更喜欢转换器,因为它全部在 XAML 中。当触发器不活动时,我不需要设置器来指定 IsEnabled 应该为真。我为遇到此问题的其他人发布此信息,以免他们产生无法用样式完成的印象。
标签: c# wpf combobox datatrigger isenabled