J'essaie d'attacher une classe d'objets ADO EF (Materials) à un ListBox et de le mettre à jour automatiquement lorsqu'un nouveau matériel est ajouté à la base de données.Databind ADO.NET Entity Framework à ListBox
Dans mon code actuel ci-dessous, il affichera tous les éléments qui sont dans la base de données avant que la source de données de contrôles ne soit définie, mais elle ne sera pas mise à jour. Je sais qu'il me manque quelque chose d'élémentaire ici. Toute aide est grandement appréciée!
public partial class Main : KryptonForm
{
private AGAEntities db = new AGAEntities();
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
matList.DataSource = db.Materials;
matList.DisplayMember = "Name";
}
private void newMat_Click(object sender, EventArgs e)
{
AddMaterial form = new AddMaterial();
form.ShowDialog();
}
}
J'aime votre solution, est pourtant là un moyen plus facile? Le cadre d'entité ne devrait-il pas déclencher un événement lorsqu'un élément est ajouté? – WedTM
Eh bien, db.Materials n'est pas exactement une collection, c'est une requête. Vous ne "ajoutez" pas d'éléments: vous les ajoutez à la base de données, et la prochaine fois que vous exécutez la requête, les nouveaux éléments seront retournés. Il ne serait donc pas logique de faire une notification dans ce cas –