为什么 Bindinglist 在数据库更改后不更新?

Why Bindinglist is not updating after database changed?

我在 Winforms 项目中工作。每当我在数据库中添加或编辑记录并关闭它时,我都希望更新我的列表。

但是在搜索表单中我的列表没有得到更新。为此,我必须再次从数据库重新绑定数据。当我搜索并了解 bindinglist 时,我使用了 bindinglist 而不是 list,但它仍然无法正常工作。

这是我的代码

///
/// Represent FirstName Fields
 ///
 public String FirstName { get; set; }
_MemberMaster.FirstName = Convert.ToString(txtFirstName.Text);
string result _IMemberMasterController.UpdateMemberMaster(_MemberMaster);

更新后我关闭了表单,但搜索表单列表没有更新。当列表更新时,我希望 datagridview 也更新。

我正要在评论中回复,但我想给出示例代码。

创建Form的代码后,例如

Form newForm = new Form(); 
newForm.Show() 

或您用来制作该表单的任何方法,添加一个 formClosed 事件处理程序:

Form newForm = new Form();
newForm.FormClosed += new FormClosedEventHandler(f_FormClosed);
newForm.Show();

然后您可以控制关​​闭表单时发生的情况,因此您可以轻松更新绑定列表。

void f_FormClosed(object sender, FormClosedEventArgs e)
{
    myBindingList.ResetBindings(false);
}

编辑

并且在您的 bindingList 构造函数中:(假设它包含字符串)

private BindingList<string> _mybindinglist;
public BindingList<string> myBindingList
{
    get { return _mybindinglist; }
    set
    {
          _mybindinglist= value;
          OnPropertyChanged("myBindingList");          // or RaisePropertyChanged or whatever you used
    }
}

我用 IUNotifyProertyChangedEvent 解决了我的问题....