0

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

谢谢

4

2 回答 2

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>
于 2013-04-12T14:24:13.513 回答
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>

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

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

于 2013-04-12T18:39:04.557 回答