C # Entity Framework и обновление listBox после вставки - PullRequest
0 голосов
/ 04 мая 2010

У меня проблема с этим кодом:

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();
        }
    }
}

Когда я добавляю новый элемент в базу данных, я хочу показать его в списке.Но похоже, что Entity Framework не обновляет контекст или что-то в этом роде.Если я закрываю эту форму и открываю ее снова, все элементы (включая новую) отображаются правильно.Как я могу показать все элементы сразу после вставки?

Извините за мой английский и некоторые чешские слова в коде.(Словарь: Книховный -> Книжный шкаф, Назев -> Имя)

1 Ответ

1 голос
/ 04 мая 2010

Вам необходимо добавить привязку данных. Посмотрите на это или это .

Настройка источника данных при инициализации получает текущее значение, но динамические обновления требуют привязки.

...