【问题标题】:C# Entity Framework and refreshing listBox after insertC# Entity Framework 和插入后刷新列表框
【发布时间】: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


    【解决方案1】:

    您需要添加一个DataBinding。看看thisthis

    在初始化时设置 DataSource 获取当前值,但动态更新需要绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-30
      • 2012-11-11
      • 1970-01-01
      • 2013-09-04
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多