C# 绑定导航器问题?
我有一个绑定导航器,用于添加/编辑项目。 我遇到的问题是,当我单击“保存”按钮(我添加到工具栏的按钮)时,我的绑定似乎没有生效。这段代码加载并绑定我的数据C# 绑定导航器问题?,c#,data-binding,C#,Data Binding,我有一个绑定导航器,用于添加/编辑项目。 我遇到的问题是,当我单击“保存”按钮(我添加到工具栏的按钮)时,我的绑定似乎没有生效。这段代码加载并绑定我的数据 private void CompanyForm_Load(object sender, EventArgs e) { // Loads all of the companies companies = new BindingList<Company>
private void CompanyForm_Load(object sender, EventArgs e)
{
// Loads all of the companies
companies = new BindingList<Company>(PersistenceManager.Instance.RetrieveAll<Company>()));
companies.AllowNew = true;
companies.AllowEdit = true;
bindingSource.DataSource = companies;
// Add our bindings
companyIdTextBox.DataBindings.Add("Text", companies, "Id");
companyNameTextBox.DataBindings.Add("Text", companies, "Name");
}
private void CompanyForm_Load(对象发送方,事件参数e)
{
//加载所有公司
companys=新绑定列表(PersistenceManager.Instance.RetrieveAll());
companys.AllowNew=true;
companys.AllowEdit=true;
bindingSource.DataSource=公司;
//添加我们的绑定
companyIdTextBox.DataBindings.Add(“Text”,companys,“Id”);
companyNameTextBox.DataBindings.Add(“Text”,companys,“Name”);
}
单击“保存”按钮时会运行此代码:
private void toolStripSaveButton_Click(object sender, EventArgs e)
{
// If we have no binding source, then we cannot save
if (null == bindingSource.Current)
{
return;
}
Company company = bindingSource.Current as Company;
// Save our company
PersistenceManager.Instance.Save<Company>(company);
}
private void toolStripSaveButton\u单击(对象发送方,事件参数e)
{
//如果没有绑定源,则无法保存
if(null==bindingSource.Current)
{
返回;
}
公司=bindingSource。当前为公司;
//拯救我们公司
PersistenceManager.Instance.Save(公司);
}
问题是,当我单击“保存”按钮时,当前项从未使用输入中的数据进行更新
我只是错过了一些愚蠢的东西吗?添加绑定时,请尝试这样做
companyIdTextBox.DataBindings.Add("Text", companies, "Id", true, DataSourceUpdateMode.OnPropertyChanged);
companyNameTextBox.DataBindings.Add("Text", companies, "Name", true, DataSourceUpdateMode.OnPropertyChanged);
默认情况下,设置为OnValidation;在您的案例中,OnValidation事件可能没有触发。如果这是问题所在,那么将DataSourceUpdateMode设置为OnPropertyChanged就可以了。我假设您的持久性存储是一个数据库?在VS解决方案资源管理器中,查看数据库文件的属性,并检查“复制到输出目录”是否未设置为“始终复制”。这将在每次生成项目时覆盖工作目录中的数据库…是否尝试放置断点以检查是否实际调用了此方法?是的,正在调用此方法。这是当我检查数据时,看到值没有被更新。