有没有办法在数据绑定的WPF组合框中添加分隔符?也就是说,在我的XAML中,组合框的ItemsSource =“{Binding TheList}”。该列表是一个可观察对象集合,其中一个对象需要与其余对象分开。该列表也是从SQL生成的,因此它不是硬编码的。我也不希望分隔符可选择。谢谢!
请查看此解决方案。它使用Style
来更改某些ComboBoxItem
对象的Template
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(){...},
}
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>
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="BorderBrush" Value="DarkGray" />
<Setter Property="BorderThickness" Value="0,1,0,0" />
</Style>
</ComboBox.ItemContainerStyle>
你需要使用 ComboBox.ItemTemplate 来绘制你的项目
http://www.silverlightshow.net/items/Silverlight-ComboBox.aspx
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");