C# 更改数据源后刷新绑定到BindingSource(绑定到对象)的WinForms控件

C# 更改数据源后刷新绑定到BindingSource(绑定到对象)的WinForms控件,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个winform,它将控件绑定到名为MemberBS的bindingsource,该bindingsource绑定到名为DomainModel.Member的自定义对象。成员对象绑定到sql server数据库中名为members的表 在表单上的控件中,我有4个文本框,它们的绑定方式如下 DuesOwingCE.DataBindings.Add("Text", MemberBS, "DuesOwing", true, DataSourceUpdateMode.OnPrope

我有一个winform,它将控件绑定到名为MemberBS的bindingsource,该bindingsource绑定到名为DomainModel.Member的自定义对象。成员对象绑定到sql server数据库中名为members的表

在表单上的控件中,我有4个文本框,它们的绑定方式如下

        DuesOwingCE.DataBindings.Add("Text", MemberBS, "DuesOwing", true, DataSourceUpdateMode.OnPropertyChanged);
        InitOwingCE.DataBindings.Add("Text", MemberBS, "InitOwing", true, DataSourceUpdateMode.OnPropertyChanged);
        OtherOwingCE.DataBindings.Add("Text", MemberBS, "OtherOwing", true, DataSourceUpdateMode.OnPropertyChanged);
        AmountOwingCE.DataBindings.Add("Text", MemberBS, "AmountOwing", true, DataSourceUpdateMode.OnPropertyChanged);
用户单击按钮以输入事务。我将当前正在编辑的成员的成员对象传递到对话框。用户为成员输入事务,然后单击保存。Save按钮调用一个名为CalculateWing的方法。此方法重新计算成员的应付款、启动费、其他费用和欠款总额,保存成员对象,然后将保存提交到基础数据源

交易表单关闭,用户返回成员表单。现在我如何更新文本框,以便显示新的余额。我尝试过MemberBS.ResetBindings(false),但这不起作用

是从数据源重新加载对象的唯一解决方案

MemberBS.DataSource=Repository.GetMember(socSecNo)


还是有更好的方法?

要使控件能够自动反映绑定源的动态更改,类需要提供适当的属性更改通知。显示如何创建实现INotifyPropertyChanged的类。有关概念,请参见


实现时,接口将业务对象的属性更改传递给绑定控件。

这是一个非常旧的线程。。。我个人使用bindingsource.ResetBindings(false)和调用来刷新控件

例如:

if (InvokeRequired)
{
     this.Invoke(new Action(()=>this.bindingSource.ResetBindings(false)));
}
else
{
     this.bindingSource.ResetBindings(false);
}