checkcombobox颜色的项目背景

时间:2018-05-14 21:13:08

标签: c# wpf

我在c#和wpf中创建应用程序。 有没有办法从这个命名空间制作checkcombobox xctk =" http://schemas.xceed.com/wpf/xaml/toolkit"每个项目都有不同的颜色。

enter image description here

ObservableCollection<Item> Items绑定到checkComboBox。在课程Item中是字段:颜色,我想要显示的颜色。

<xctk:CheckComboBox Name="CheckComboBox"  ItemsSource="{Binding Items}" FontFamily="Times New Roman" FontSize="20" Margin="190,553,254,126"   />

2 个答案:

答案 0 :(得分:1)

你可以使用ObservableCollection作为项目源,或者将一个个ComboboxItems添加到你的组合框中。

您可以修改组合框的属性。

ComboboxItem item = new ComboboxItem();
item.Content = "Item1";
item.Tag = "Any value"; You can assign any object and use for exemple in selection change event.
item.Background = new SolidColorBrush(Colors.Red);
myCombobox.Items.Add(item);

ObservableCollection<ComboboxItem> myList = new ObservableCollection<ComboboxItem>();

  ComboboxItem item = new ComboboxItem();
item.Content = "Item1";
item.Tag = "Any value"; You can assign any object and use for exemple in selection change event.
item.Background = new SolidColorBrush(Colors.Red);
myList.Add(item);

myCombobox.ItemsSource = myList;

在这种情况下,您可以使用SelectedItem来获取所需的值:

 if(myCombobox.SelectedItem != null)
  {
   var myObject = (myCombobox.SelectedItem as ComboboxItem).Tag as MyObject; //My object can be any type.
   var idValue = myObject.ID;
  }

答案 1 :(得分:0)

我不知道xceed CheckComboBox的结构,但这里有一个想法应该有效。首先,找出响应的根元素,将每个项目绑定到CheckComboBox。然后在Style目标中将CheckComboBox.Resources写入该元素的类型,以覆盖其Background属性,其中SolidBrush具有项目中的颜色{{1} }。如有必要,请覆盖其他视觉相关属性,例如BindingMargin等。如果我们使用HorizontalAlignment执行此操作,则应如下所示

ComboBox