3

有什么方法可以将分隔符添加到数据绑定的 WPF 组合框中?即在我的 xaml 中,组合框的 ItemsSource="{Binding TheList}"。该列表是一个可观察的对象集合,我希望将其中一个与其他对象分开。这个列表也是从 sql 生成的,所以它没有硬编码或任何东西。我也不希望可以选择分离器。谢谢!

4

5 回答 5

4

检查解决方案。它使用 aStyle来改变Template某些ComboBoxItem对象的

于 2013-08-09T19:50:42.073 回答
2

我在 .cs 文件中动态构建我的组合框,没有使用绑定,但我相信它可以帮助你。无法单击和选择分隔符。

ComboBox frameColor = new ComboBox()
{
    Width = 200,
    Margin = new Thickness(180, -780, 0, 0),
    VerticalAlignment = VerticalAlignment.Center,
    IsEditable = false,
    Items =
    {
        new ComboBoxItem(){...},
        new Separator(),
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
        new Separator(),
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
        new ComboBoxItem(){...},
    }

这是结果:
带分隔符的组合框

于 2021-05-17T07:12:45.710 回答
1

虽然我的ComboxBox目前)不是DataBound我通过向元素添加底部边框来实现分隔符的概念。在此示例中,分隔符之前的两行和分隔符之后的两行。

<ComboBox x:Name="Cbx" SelectionChanged="Cbx_SelectionChanged">
  <ComboBoxItem Content="select one..." Foreground="DarkGray" IsSelected="True" /
  <ComboBoxItem Content="ABC" />
  <ComboBoxItem Content="DEF" />
  <ComboBoxItem Content="GHI" BorderBrush="Black" BorderThickness="0,0,0,2" />
  <ComboBoxItem Content="KLM" />
  <ComboBoxItem Content="NOP" />
</ComboBox>
于 2020-01-17T10:45:06.293 回答
0

你需要使用 ComboBox.ItemTemplate 来绘制你的元素

http://www.silverlightshow.net/items/Silverlight-ComboBox.aspx

于 2013-08-09T20:24:23.167 回答
0

如果你想在 C# 代码中做同样的事情:

Cbx.Items.Add("ABC");
Cbx.Items.Add("DEF");
ComboBoxItem item = new ComboBoxItem();
item.Content = "GHI";
item.BorderBrush = Brushes.Black;
item.BorderThickness = new Thickness(0, 0, 0, 2);
Cbx.Items.Add(item);
Cbx.Items.Add("KLM");
Cbx.Items.Add("NOP");
于 2020-05-30T21:32:01.957 回答