Я пытаюсь подключить класс объектов ADO EF (Материалы) к ListBox и автоматически обновлять его, когда новый материал добавляется в базу данных.Databind ADO.NET Entity Framework to ListBox
В моем текущем коде ниже будут показаны все элементы, находящиеся в базе данных, до того, как будет установлен источник данных управления, но он не будет обновлен.
Я знаю, что мне не хватает чего-то элементарного здесь. Любая помощь очень ценится!
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();
}
}
Мне нравится ваше решение, однако есть проще? Должна ли инфраструктура сущности поднимать событие при добавлении элемента? – WedTM
Ну, db.Materials - это не совсем коллекция, это запрос. Вы не добавляете к нему элементы: вы добавляете их в базу данных, и при следующем выполнении запроса будут возвращены новые элементы. Поэтому нет смысла поднимать уведомление в этом случае –