【发布时间】:2014-08-15 20:00:45
【问题描述】:
我已经尝试解决这个问题大约一天了,但没有运气。希望这里有人可以提供帮助。
我有一个绑定到我的 DataGridView 的 DataTable 对象。表的一列,下例中的 Col_4 需要保存一个来自枚举类型的值。在这种情况下,我使用了颜色。我需要表的 Col_4 成为允许我选择所需颜色的 ComboBox 元素列。然后,颜色选择将存储在绑定到 DataGridView 的 DataTable 中。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
enum MyColors {Red, Green, Blue, Yellow, Orange, White};
List<MyColors> colors = Enum.GetValues(typeof(MyColors)).Cast<MyColors>().ToList();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataTable table = new DataTable("theData");
table.Columns.Add("Col_1");
table.Columns.Add("Col_2");
table.Columns.Add("Col_3");
table.Columns.Add("Col_4");
DataGridViewComboBoxColumn comboCol = new DataGridViewComboBoxColumn();
comboCol.ValueType = typeof(MyColors);
comboCol.DataSource = colors;
comboCol.DataPropertyName = "Col_4";
DataRow row = table.NewRow();
row["Col_1"] = 1;
row["Col_2"] = 2;
row["Col_3"] = 3;
row["Col_4"] = 4;
table.Rows.Add(row);
dataGridView1.DataSource = table;
dataGridView1.Columns.Add(comboCol);
dataGridView1.AllowUserToAddRows = false;
Console.WriteLine(dataGridView1.Rows[0].State.ToString());
}
}
}
我有两个问题:
- 如何让 ComboBox 元素的列具有“Col_4”标题?
- 如何使选定的 ComboBox 值正确存储在 DataTable 中?
这可能很简单,但我是 C# 新手,我真的很困惑。
【问题讨论】:
标签: c# datagridview combobox datatable