我目前有一个类,我正在尝试创建一个简单的GUI来创建这个类的集合.这个类的大多数属性都是字符串.但是,我希望用户能够设置的属性之一是Enum.因此,我希望用户界面具有此枚举的下拉列表,以限制用户输入无效的值.目前,我正在获取对象的初始列表,将它们添加到DataTable并将DataGridView的DataSource设置为表.很好地工作,甚至为一个布尔属性创建一个复选框列.但是,我不知道如何将枚举列放入下拉列表中.我正在使用C#和.NET 2.0.
此外,我已经尝试将DataGridView的DataSource分配给我的对象列表,但是当我这样做时,它对enum没有帮助,我无法在DataGridView中创建新行,但我绝对不是绑定使用DataTable作为我的DataSource,它只是我半工作的选项.
我不知道这是否适用于DataGridView列,但它适用于ComboBoxes:
comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));
和:
MyEnum value = (MyEnum)comboBox1.SelectedValue;
更新:它也适用于DataGridView列,只记得设置值类型.
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn(); col.Name = "My Enum Column"; col.DataSource = Enum.GetValues(typeof(MyEnum)); col.ValueType = typeof(MyEnum); dataGridView1.Columns.Add(col);