在我的Windows窗体上,我有一个DataGridView组件,它绑定到BindingSource。 BindingSource是EntityFramework对象的对象数据源。
有时我的DataBridView中的列会被更新。有时,所有属性都会添加为列,但现在它也会删除所有列。所以我丢失了所有设置。
何时自动添加列?
(我正在使用VS.NET 2010)
更新
//
// Summary:
// Gets or sets a value indicating whether columns are created automatically
// when the System.Windows.Forms.DataGridView.DataSource or System.Windows.Forms.DataGridView.DataMember
// properties are set.
//
// Returns:
// true if the columns should be created automatically; otherwise, false. The
// default is true.
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[DefaultValue(true)]
public bool AutoGenerateColumns { get; set; }
该属性未显示在设计器中,并且未选中“隐藏高级属性”。
更新2: 当我更新我的实体框架模型时,会再次添加所有列。我只能在表单的构造函数中设置属性。这非常烦人。
答案 0 :(得分:5)
我实际上不知道这种情况何时发生,但我倾向于手动创建所有列。我在设计器中创建了列,并在我的代码中将AutoGenerateColumns
属性设置为false
。
答案 1 :(得分:5)
添加此代码或将DataGridView属性AutoGenerateColumns
更改为false
DataGridView1.AutoGenerateColumns=false;
答案 2 :(得分:2)
将AutoGenerateColumns属性设置为False但请记住在数据绑定之前执行此操作。
例如:
DataGridView1.AutoGenerateColumns=false;
DataGridView1.DataSource=getData();
默认设置为True。
答案 3 :(得分:1)
尝试先离开自动生成的列并将其设置为false。 如果没有帮助,请尝试使用Visible = false保留所有内容。 抱歉英语不好。
答案 4 :(得分:0)
我有同样的问题。我在代码中找不到AutoGenerate属性。
出于某些原因,我不了解我的DataGridView没有在VB代码中可以看到的AutoGenerate属性。
在“编辑列”对话框上看不到复选框。
在网格的属性视图中看不到AutoGenerate属性。
我有Visual Studio Community 2017。
这是我的课程属性:
公共属性BatchId为整数
公共属性代码为字符串
公共财产被视为整数
公共属性描述为字符串
公共属性ID为整数
所以,这就是我所做的:
运行应用程序时,DataGridView仅显示班级中的那些列。