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

本文关键字:分隔 两个 一行 下拉列表 插入 | 更新日期: 2023-09-27 18:08:55

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

谢谢

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

如果你对这些值进行硬编码,那么像这样做就可以了:

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

我在网上找到了这个技巧…而且有效!!在我的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>

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

我希望这可能会帮助别人(也是我在未来:))