样式化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
: