我想用0-NSeparators
制作一个ComboBox
我能够像一样用CompositeCollection
做到这一点
<ComboBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection ={Binding mysrc1}/>
<ComboBoxItem IsEnabled = "False">
<Separator Background = "White" Height=10/>
</ComboBoxItem>
<CollectionContainer Collection ={Binding mysrc2}/>
<ComboBoxItem IsEnabled = "False">
<Separator Background = "White" Height=10/>
</ComboBoxItem>
</CompositeCollection>
</ComboBox.ItemsSource>
但这有点笨拙,有很多代码重复,但在.View
和.ViewModel
中
我正在考虑使用自定义控件,该控件将从ComboBox
继承并使用DependencyProperty.RegisterAttached
作为Separator
(s)的位置
但找不到这样做的方法
p.S
我不喜欢使用任何代码,也不使用<Setter Property="Template">
,因为我的程序用户中有很多ComboBox
的基本样式和模板
当您使用数据绑定时,项目是分组的,所以我会使用分组。
查看此答案:在组合框中分组项目(已解决)
如果你不想使用分组,那么你可以使用这种方法:插入通过数据绑定填充的组合框项目分隔符