我使用WinForms和Entity Framework 6.我有一个:
public class ApplicationDbContext : DbContext {
public DbSet<Person> People{ get; set; }
}
每个Person
都有属性:Id
,Name
,LastName
,Age
。
在Form
我希望显示People
中的所有ListBox
,并且我希望将此ListBox
的内容与数据库保持同步。< / p>
如何将BindingList bindingList
绑定到ApplicationDBContext context
,或者反过来?
评论:这是SSCCE。
答案 0 :(得分:0)
您可以使用ToBindingList()
扩展程序在BindingList<Person>
DataSource
中获取ListBox
所需的public partial class YourForm : Form
{
private YourContext context=new YourContext();
public BindingList<Person> BindingList { get; set; }
private void YourForm_Load(object sender, EventArgs e)
{
context.People.Load();
this.listBox1.DataSource= BindingList= context.People.Local.ToBindingList();
this.listBox1.DisplayMember = "Name";
}
//Button for save new changes
private void SaveChangesButton_Click(object sender, EventArgs e)
{
context.SaveChanges();
}
//Disposing the context before close the form
private void YourForm_FormClosing(object sender, FormClosingEventArgs e)
{
context.Dispose();
}
}
:
DbSet
从BindingList
添加或删除对象时,也会在BindingList
中添加或删除该对象。添加或删除DbSet
也会在get_client_ip_server()
上执行相应的添加/删除。