に があり、 にアイテムを追加したいDataGridViewComboBoxColumn
という問題があります。DataGridView
DataSource
最初に DataSource プロパティをList<string>
正常に動作する に設定しました。後で、このリストに項目を追加しますが、これは正常に機能します。しかし、コンボボックスでこのアイテムを選択しようとすると、データ検証エラーが発生します。
System.ArgumentException: DataGridViewComboBoxCell 値が無効です。
さらに、コンボボックスを新しく追加された値に実際に設定することはできません。
これは完全に機能する例です。
public partial class Form1 : Form
{
List<string> Data { get; set; }
public Form1()
{
InitializeComponent();
// Populate our data source
this.Data = new List<string> { "Thing1", "Thing2" };
// Set up controls
var gvData = new System.Windows.Forms.DataGridView();
var col1 = new System.Windows.Forms.DataGridViewComboBoxColumn();
var button = new System.Windows.Forms.Button();
gvData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { col1 });
// Set the column's DataSource
col1.DataSource = this.Data;
col1.HeaderText = "Test";
col1.Name = "col1";
// Set up a button which adds something to the source
button.Text = "Add";
button.Location = new System.Drawing.Point(0, 200);
button.Click += (e, s) => this.Data.Add("Thing3");
this.Controls.Add(gvData);
this.Controls.Add(button);
}
}
の にアイテムを追加するにはどうすればよいDataSource
ですDataGridViewComboBoxColumn
か?