【发布时间】:2015-06-29 08:50:00
【问题描述】:
我正在用 c# winforms 编写程序,并且有一个绑定到实体框架对象的TextBox:
BindingList<Settings> bindingList = BillContext.Settings.Local.ToBindingList();
field6TextBox.DataBindings.Add("Text", bindingList, "CustomerField6");
我创建了一个保存按钮来将更改保存到数据库中:
private void saveCustomerFields_Click(object sender, EventArgs e){
BillContext.SaveChanges();
}
如果我点击保存按钮一切正常,但如果我使用我为保存按钮创建的快捷键:
private void field6TextBox_KeyDown(object sender, KeyEventArgs e){
if(e.KeyData.Equals(Keys.Enter))
saveCustomerFields_Click(sender, e);
}
和
private void MainForm_KeyDown(object sender, KeyEventArgs e){
if(e.KeyData == (Keys.Control | Keys.S)){
saveCustomerFields_Click(sender, e);
}
}
虽然调用了保存点击事件处理程序,但BillContext.Settings.Local 没有更改,导致更改未保存到数据库中。
按钮单击事件句柄的单击和代码调用如何产生不同的后果(考虑到我不使用方法输入)?以及如何使我的快捷键起作用?
【问题讨论】:
-
简而言之,它不应该。
SaveChanges是做什么的? -
BillContext是我扩展实体框架DbContext的类。它将在此上下文中所做的所有更改保存到底层数据库。
标签: c# winforms entity-framework data-binding eventhandler