如何将分隔符添加到数据绑定的WPF组合框?

时间:2013-08-09 19:22:58

标签: c# wpf binding combobox separator

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

4 个答案:

答案 0 :(得分:4)

检查this解决方案。它使用Style来更改某些Template个对象的ComboBoxItem

答案 1 :(得分: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(){...},
    }

结果如下:
Combo box with separators

答案 2 :(得分:0)

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

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

答案 3 :(得分: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");