在下拉列表中插入一行以分隔两个间隔
本文关键字:分隔 两个 一行 下拉列表 插入 | 更新日期: 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>
然后在我的代码后面,我已经插入了一个全新的空白项不可编辑。结果是在预选项下的一行。我的目标达到了。
我希望这可能会帮助别人(也是我在未来:))