【发布时间】:2011-02-15 08:50:24
【问题描述】:
我对这段代码有疑问:
public partial class KnihovnyForm : Form
{
DatabazeEntities db;
public KnihovnyForm()
{
InitializeComponent();
db = new DatabazeEntities();
knihovnyListBox.DataSource = db.Knihovny;
knihovnyListBox.DisplayMember = "Nazev";
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
base.OnFormClosed(e);
db.Dispose();
}
private void novaButton_Click(object sender, EventArgs e)
{
string text = "";
if (InputForm.ShowDialog("Název nové knihovny", ref text) == DialogResult.OK)
{
Knihovna n = new Knihovna() { Nazev = text };
db.AddToKnihovny(n);
db.SaveChanges();
CurrencyManager cm = (CurrencyManager)BindingContext[db.Knihovny];
cm.Refresh();
}
}
}
当我向数据库添加新项目时,我想在列表框中显示它。但它看起来像实体框架不更新上下文或类似的东西。如果我关闭此表单并再次打开它,所有项目(包括新项目)都会正确显示。如何在插入后立即显示所有项目?
对不起我的英语和一些捷克语的代码。 (字典:Knihovny -> 书柜,Nazev -> 姓名)
【问题讨论】:
标签: c# winforms entity-framework data-binding listbox