我正在尝试将DataGridView绑定到List,其中MyObject看起来像
class MyObject
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
//List<MyObject> objects;
grid.Columns[0].DataPropertyName = "Property1";
grid.DataSource = objects;
我只想显示一个属性,但是我将另一个列添加到我的DataGridView,其中还显示了Property2。如何防止它被添加?
答案 0 :(得分:9)
如果从不希望显示该属性:
class MyObject
{
public string Property1 { get; set; }
[Browsable(false)]
public string Property2 { get; set; }
}
否则,如前所述 - 将AutoGenerateColumns
设置为false并手动添加。
答案 1 :(得分:2)
听起来您将DataGridView控件的AutoGenerateColumns属性设置为True。您可以将其设置为False,也可以使用.Columns.Remove方法删除您不想看到的列。
答案 2 :(得分:0)
我相信你需要手动设置列,正如Henk所说。但是,您可能希望设置比其示例中更多的属性。这就是我在一个项目中所做的:
DataGridView dataGridView = new DataGridView();
dataGridView.AutoGenerateColumns = false;
DataGridViewColumn columnA = new DataGridViewTextBoxColumn();
columnA.DataPropertyName = "propertyA";
columnA.HeaderText = "Column A";
columnA.Name = "columnA";
DataGridViewColumn columnB = new DataGridViewTextBoxColumn();
columnB.DataPropertyName = "propertyB";
columnB.HeaderText = "Column B";
columnB.Name = "columnB";
dataGridView.Columns.Clear();
dataGridView.Columns.Add(columnA);
dataGridView.Columns.Add(columnB);
dataGridView.AutoResizeColumns();
我相信以上的作品。如果你得到一个奇怪的异常检查,以确保列/单元格定义了默认的单元格样式。