我正在尝试将标签存储在带有类别的 ComboBox 中 - 像这样。
但是,ComboBox 项目看起来像这样:
这是我到目前为止所做的:
应用程序.XAML
<DataTemplate x:Key="groupStyle">
<Label FontWeight="Bold" Content="{Binding Name}"/>
</DataTemplate>
代码背后
ComboBox comboBox1 = new ComboBox();
GroupStyle style = new GroupStyle();
style.HeaderTemplate = (DataTemplate)this.FindResource("groupStyle");
comboBox1.GroupStyle.Add(style);
comboBox1.DisplayMemberPath = "Item";
ObservableCollection<CategoryItem<Label>> items = new ObservableCollection<CategoryItem<string>>();
Label label = new Label();
TextBlock block = new TextBlock();
block.Text = "Text";
label.Content = block;
items.Add(new CategoryItem<Label> { Category = "Category", Item = label });
CollectionViewSource cvs = new CollectionViewSource();
cvs.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
cvs.Source = items;
Binding b = new Binding();
b.Source = cvs;
BindingOperations.SetBinding(comboBox1, ComboBox.ItemsSourceProperty, b);
public class CategoryItem<T>
{
public T Item { get; set; }
public string Category { get;
}