【发布时间】:2015-11-14 06:40:32
【问题描述】:
我正在尝试将实体绑定到列表框,当我从实体中删除某些内容时,我希望它反映在列表框中。
这是一个代码sn-p:
SportsClubEntities spe = new SportsClubEntities
BindingSource bs = new BindingSource();
var stm =
from xyz in spe.SomeEntity where xyz.prop == 66
select new { Name = xyz.name, rec = xyz }
bs.DataSource = stm.ToList();
ListBox.DataSource = bs;
ListBox.DisplayMember = "Name";
ListBox.ValueMember = "rec";
我有一个按钮,当我单击它时,我希望它删除列表框中的选定项目,但更重要的是,我希望它从基础实体中删除该项目。即:当从列表框中选择并删除 xyz 时,我希望从 spe 中删除 xyz。
如果我执行bs.Remove(item) 将项目从列表框中删除(然后我调用bs.ResetBindings(),但它不会更新实体(spe.SomeEntity)。最初,我认为它会,但后来我意识到 LINQ 是一个查询,返回一些结果。
当我单击删除按钮时,我可以执行spe.SomeEntity.Remove(item),但列表框不会更新。
有没有一种方法可以只对其中一个执行删除,并且都更新了?
我这样做完全错了吗?是否有某种“标准”方式来做这种事情?
我无法将spe.SomeEntity.ToList() 直接绑定到列表框,因为我需要实体中记录的子集。
感谢任何帮助,我仍在学习。
【问题讨论】:
标签: c# data-binding listbox entity-framework-6