WinformのDataGridView内のDataGridViewComboBoxColumnでユーザーの選択を保持するのに問題があります。ComboBoxを離れると、選択範囲が消えます。
SelectedIndexを-1に設定するなど、問題に対するいくつかの答えを見つけましたが、機能しませんでした。正しい方向を教えてください。
前もって感謝します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Create DataTable.
DataColumn classIdColumn = new DataColumn("Class", typeof(string));
_schoolTable = new DataTable("School");
_schoolTable.Columns.AddRange(new[] { classIdColumn });
DataRow row = _schoolTable.NewRow();
row["Class"] = "yr 5";
_schoolTable.Rows.Add(row);
// Bind DataGridView to DataTable, and add ComboBoxColumn.
dataGridView1.DataSource = _schoolTable;
DataGridViewComboBoxColumn listCol = new DataGridViewComboBoxColumn();
listCol.DisplayIndex = 1;
listCol.DataSource = GetChoices();
listCol.DisplayMember = "Category";
listCol.ValueMember = "Number";
listCol.DefaultCellStyle.NullValue = "None";
dataGridView1.Columns.Add(listCol);
}
private DataTable _schoolTable;
private static List<IHuman> GetChoices()
{
return Choices;
}
private static readonly List<IHuman> Choices = new List<IHuman>(){ new Student(), new Teacher() };
private interface IHuman
{
int Number { get; set; }
string Category { get; }
}
private class Student : IHuman
{
public int Number { get; set; }
public string Category { get { return "student"; } }
}
private class Teacher : IHuman
{
public int Number { get; set; }
public string Category { get { return "teacher"; } }
}
}