我有下面的代码,但DatGridView显示我空行。我找不到解决方案。我已将AutoGenerateColumns
设置为false
。如果我将它设置为true
,它会创建行,但我不允许将此属性设置为true
(客户端希望)。winForms + DataGridView绑定到列表<T>(Visual Studio 2005,C#2.0)
我在做什么错?下面的代码:
public partial class Form1 : Form
{
private List<AStruct> _aCollectionList;
private BindingList<AStruct> _aCollectionBindingList;
public struct AStruct
{
public string ACode
{
get { return _aCode; }
set { _aCode = value; }
}
public string AName
{
get { return _aName; }
set { _aName = value; }
}
private string _aCode;
private string _aName;
}
public Form1()
{
InitializeComponent();
this.dataGridView1.AutoGenerateColumns = false;
}
private void button1_Click(object sender, EventArgs e)
{
_aCollectionList = new List<AStruct>();
FillCollectionStruct(true);
dataGridView1.DataSource = _aList;
dataGridView1.Refresh();
}
private void button2_Click(object sender, EventArgs e)
{
_aCollectionBindingList = new BindingList<AStruct>();
FillCollectionStruct(false);
dataGridView1.DataSource = _aBindingList;
dataGridView1.Refresh();
}
private void FillCollectionStruct(bool listBool)
{
AStruct aStruct = new AStruct();
for (int i = 0; i < 10; i++)
{
aStruct.ACode = i.ToString();
aStruct.AName = i.ToString();
if (listBool)
_aCollectionList.Add(aStruct);
else
_aCollectionBindingList.Add(aStruct);
}
}
}
在Form1.Designer我做出以下栏目:
// aCodeColumn
//
this.colorCodeColumn.DataPropertyName = "Code";
this.colorCodeColumn.HeaderText = "a code";
this.colorCodeColumn.Name = "aCodeColumn";
//
// aNameColumn
//
this.colorNameColumn.DataPropertyName = "Name";
this.colorNameColumn.HeaderText = "a name";
this.colorNameColumn.Name = "aNameColumn";
要:
//
// aCodeColumn
//
this.colorCodeColumn.DataPropertyName = "Code";
this.colorCodeColumn.HeaderText = "a code";
this.colorCodeColumn.Name = "aCodeColumn";
//
// aNameColumn
//
this.colorNameColumn.DataPropertyName = "Name";
this.colorNameColumn.HeaderText = "a name";
this.colorNameColumn.Name = "aNameColumn";
为什么客户端不想看到自动生成的行?这些是数据。他不想看到数据? – Tigran 2012-01-11 08:00:36
在已存在的列中: – Remco 2012-01-11 08:05:42
SO在以下列中:// // aCodeColumn // this.colorCodeColumn.DataPropertyName =“Code”; this.colorCodeColumn.HeaderText =“a code”; this.colorCodeColumn.Name =“aCodeColumn”; // // aNameColumn // this.colorNameColumn.DataPropertyName =“Name”; this.colorNameColumn.HeaderText =“a name”; this.colorNameColumn.Name =“aNameColumn”; – Remco 2012-01-11 08:06:15