我有問題,在WinForm的一個DataGridView內DataGridViewComboBoxColumn堅持用戶的選擇。一旦離開組合框,選擇就會消失。堅持用戶選擇在DataGridViewComboBoxColumn在winform
我會發現一些答案的問題,如將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"; } }
}
}
什麼事件是您使用的datagridview的?如果你有一個cellformatting事件處理程序或類似的東西,就會發生這種情況。 –
謝謝大衛。我沒有任何事件處理程序。只有當了「DataGridViewComboxBoxColumn」裏面的「的DataGridView」的「數據源」設置爲對象的列表出現此問題。並將此「DataGridViewComboxBoxColumn」的「DisplayMember」設置爲對象內的Property。如果「數據源」設置爲字符串「DisplayMember」的列表中未設置任何東西,當我離開組合框的選擇將保持均勻。 – Dominic
你能提供一些代碼嗎?我從來沒有遇到過這樣的問題,所以我猜你正在做一些不尋常的事情或者不太正確。你可能重置了你綁定數值源對象的值成員的屬性? –