在下拉列表中插入一行以分隔两个间隔

时间:2013-04-12 13:03:38

标签: c# wpf xaml wpf-controls

我有一个24小时填写的下拉列表。 在12:00之后我想插入一行来区分两个时间片。 我该怎么办?

由于

2 个答案:

答案 0 :(得分:0)

如果您正在对这些值进行硬编码,那么这样的事情就可以解决问题:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <ComboBox HorizontalAlignment="Center" Margin="10">
        <!-- ... -->
        <ComboBoxItem Content="10:00"/>
        <ComboBoxItem Content="11:00"/>
        <ComboBoxItem>
            <ComboBoxItem.Content>
                <Border BorderBrush="Black" BorderThickness="0,0,0,1">
                    <TextBlock Text="12:00" Margin="0,0,0,1"/>
                </Border>
            </ComboBoxItem.Content>
        </ComboBoxItem>
        <ComboBoxItem Content="13:00"/>
        <!-- ... -->
    </ComboBox>
</Grid>

答案 1 :(得分:0)

我在网上发现了这个伎俩......它有效! 在我的XAML中,我已经介绍了这段代码:

<ComboBox.ItemContainerStyle>
  <Style TargetType="{x:Type ComboBoxItem}"
         BasedOn="{StaticResource {x:Type ComboBoxItem}}">
    <Style.Triggers>
      <DataTrigger Binding="{Binding}"
                   Value="">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="{x:Type ComboBoxItem}">
              <Separator HorizontalAlignment="Stretch"
                         IsEnabled="False" />
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </DataTrigger>
    </Style.Triggers>
  </Style>
</ComboBox.ItemContainerStyle>

然后在我的代码背后,我已经插入了一个不可编辑的全新空白项目。 结果是预选项目下的一行。 我的目标已达成。

我希望这可以帮助某人(将来也是我:))