C# 实体框架,DataGridView:添加项时发生InvalidOperationException
在将C# 实体框架,DataGridView:添加项时发生InvalidOperationException,c#,winforms,entity-framework,datagridview,entity-framework-6,C#,Winforms,Entity Framework,Datagridview,Entity Framework 6,在将allowUserToAddress设置为true的情况下,向DataGridView添加项目时,我无法消除异常。我已经意识到这一切的发生是因为有一个以行为中心并准备好填充的行(因此将属性设置为false或禁用网格可以解决问题),但我仍然想知道:这是一个bug还是一个预期行为,而我做错了? 示例代码(一个按钮和一个表单上的DataGridView): 名称空间测试 { 公共部分类主窗体:窗体 { 公共类实体 { 公共字符串文本{get;set;} } BindingList=新的Observ
allowUserToAddress
设置为true
的情况下,向DataGridView
添加项目时,我无法消除异常。我已经意识到这一切的发生是因为有一个以行为中心并准备好填充的行(因此将属性设置为false
或禁用网格可以解决问题),但我仍然想知道:这是一个bug还是一个预期行为,而我做错了?
示例代码(一个按钮和一个表单上的DataGridView
):
名称空间测试
{
公共部分类主窗体:窗体
{
公共类实体
{
公共字符串文本{get;set;}
}
BindingList=新的ObservableCollection().ToBindingList();
公共表格(
{
初始化组件();
dataView.DataSource=列表;
}
私有无效ClickMe按钮\单击(对象发送者,事件参数e)
{
列表。添加(新实体)
{
Text=“你好”
});
}
}
}
单击该按钮会引发InvalidOperationException。您的代码对我来说运行良好。。。可能是因为安装了EntityFramework6.1.0?好吧,这是VisualStudio中的一个bug。我更新到2013更新2,问题似乎消失了。
namespace test
{
public partial class MainForm : Form
{
public class Entity
{
public string Text { get; set; }
}
BindingList<Entity> list = new ObservableCollection<Entity>().ToBindingList();
public MainForm()
{
InitializeComponent();
dataView.DataSource = list;
}
private void clickMeButton_Click(object sender, EventArgs e)
{
list.Add(new Entity
{
Text = "Hello"
});
}
}
}