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解决方案资源管理器中,查看数据库文件的属性,并检查“复制到输出目录”是否未设置为“始终复制”。这将在每次生成项目时覆盖工作目录中的数据库…

是否尝试放置断点以检查是否实际调用了此方法?是的,正在调用此方法。这是当我检查数据时,看到值没有被更新。