ComboBox样式为StaticResource时为NullReferenceException

时间:2012-04-09 14:48:24

标签: c# wpf data-binding combobox

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

0 个答案:

没有答案