我在c#和wpf中创建应用程序。 有没有办法从这个命名空间制作checkcombobox xctk =" http://schemas.xceed.com/wpf/xaml/toolkit"每个项目都有不同的颜色。
我ObservableCollection<Item> Items
绑定到checkComboBox
。在课程Item
中是字段:颜色,我想要显示的颜色。
<xctk:CheckComboBox Name="CheckComboBox" ItemsSource="{Binding Items}" FontFamily="Times New Roman" FontSize="20" Margin="190,553,254,126" />
答案 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} }。如有必要,请覆盖其他视觉相关属性,例如Binding
,Margin
等。如果我们使用HorizontalAlignment
执行此操作,则应如下所示
ComboBox