i ont un problème avec ce code:C# Entity Framework et listBox rafraîchissante après insertion
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();
}
}
}
Quand j'Ajouter un nouvel élément à la base de données, je veux le montrer dans la liste. Mais il semble que Entity Framework ne met pas à jour le contexte ou quelque chose comme ça. Si je ferme ce formulaire et l'ouvre à nouveau tous les éléments (y compris le nouveau) sont affichés correctement. Comment puis-je montrer tous les articles immédiatement après insertion?
Désolé pour mon anglais et quelques mots tchèques dans le code. (Dictionnaire: Knihovny -> Bibliothèque, Nazev -> Nom)