<ComboBox SelectionChanged="ComboBox_SelectionChanged" Style="{StaticResource RowStyle}">
将导致NullReferenceException。如果样式更改为DynamicResource,则没有异常,但是,我需要一个StaticResource,因为我的ComboBox样式实际上是基于RowStyle:
<ComboBox ItemsSource="{Binding PossibleValues}" SelectionChanged="ComboBox_SelectionChanged" >
<ComboBox.Style>
<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource RowStyle}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=PossibleValues}" Value="{x:Null}">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
有什么方法吗?我需要设置ComboBox的样式,因为我需要约束它的高度,因为控件是基于自定义列的DataGrid中行的一部分。如果没有要选择的值,我还需要ComboBox自定义样式来隐藏元素。
RowStyle:
<UserControl.Resources>
<Style x:Key="RowStyle" TargetType="{x:Type Control}">
<Setter Property="Height" Value="20"/>
<Setter Property="MaxHeight" Value="20"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<UserControl.Resources>