为什么 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 解决了我的问题....
我在 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 解决了我的问题....