数据库更改后为什么Bindinglist没有更新?

时间:2016-09-15 08:00:07

标签: c# winforms list datagridview bindinglist

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

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

这是我的代码

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

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

2 个答案:

答案 0 :(得分:0)

我即将在评论中回复,但我想提供示例代码。

在创建表单的代码之后,例如

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
    }
}

答案 1 :(得分:0)

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