样式化WPF ComboBox项目

我有一个非常简单的WPF应用程序,它显示一个ComboBox,它绑定到代表人的类列表。 每个’Person’对象都有一个Name字符串字段和一个Sex enum。 我希望ComboBox显示各种人物名称字段的下拉列表,但是根据性别字段对每一行进行样式设置,例如,蓝色表示男性,粉红色表示女性。 谁能告诉我我做错了什么?

这是XML:

                   

这是C#:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Collections.ObjectModel; namespace ComboBoxColour { ///  /// Interaction logic for MainWindow.xaml ///  public partial class MainWindow : Window { public List people; public List People { get { return people; } set { people = value; } } public MainWindow() { this.DataContext = this; People = new List(); People.Add(new Person("Alice", SexEnum.Female)); People.Add(new Person("Bob", SexEnum.Male)); People.Add(new Person("Claire", SexEnum.Female)); People.Add(new Person("Daniel", SexEnum.Male)); InitializeComponent(); } } public enum SexEnum{Male,Female}; public class Person { private string name; public string Name { get { return name; } set { name = value; } } private SexEnum sex; public SexEnum Sex { get { return sex; } set { sex = value; } } public Person(string Name, SexEnum Sex) { this.Name = Name; this.Sex = Sex; } } } 

提前谢谢了

您应该使用“Style”触发器而不是“TextBlock.Triggers”

使用这个XAML:

                

现在你的男性为蓝色,女性为粉红色。

使用ItemContainerStyle而不是ItemTemplate