C#网格绑定未更新
我有一个绑定到集合的网格。由于某种原因,我不知道,现在当我在网格中执行某些操作时,网格不会更新 情况:当我在网格中单击一个按钮时,它会增加同一行中的一个值。当我单击时,我可以调试并查看值增量,但值在网格中不会更改但是当我单击按钮,最小化并恢复窗口时,值会更新。。。要像以前一样更新值,我必须做什么 更新 这个问题还没有解决,但我接受了最好的答案C#网格绑定未更新,c#,data-binding,datagridview,C#,Data Binding,Datagridview,我有一个绑定到集合的网格。由于某种原因,我不知道,现在当我在网格中执行某些操作时,网格不会更新 情况:当我在网格中单击一个按钮时,它会增加同一行中的一个值。当我单击时,我可以调试并查看值增量,但值在网格中不会更改但是当我单击按钮,最小化并恢复窗口时,值会更新。。。要像以前一样更新值,我必须做什么 更新 这个问题还没有解决,但我接受了最好的答案 它没有解决,因为当数据来自数据库而不是缓存时,它与usuall一样工作。对象被序列化并在事件丢失时抛出进程。这就是我重新构建它们的原因,它对我所知道的有用
它没有解决,因为当数据来自数据库而不是缓存时,它与usuall一样工作。对象被序列化并在事件丢失时抛出进程。这就是我重新构建它们的原因,它对我所知道的有用,因为我可以与它们交互,但由于不确定的原因,它似乎不适用于网格的更新。听起来您需要在更新代码中调用DataBind。我正在我的集合和网格之间使用BindingSource对象。通常我不需要调用任何东西。为了使绑定是双向的,从控件到数据源以及从数据源到控件,数据源必须通过以下两种可能的方式之一实现属性更改通知事件:
- 实现接口,并在属性更改时引发事件:
public string Name { get { return this._Name; } set { if (value != this._Name) { this._Name= value; NotifyPropertyChanged("Name"); } } }
- 为每个属性输入一个已更改的事件,这些属性在更改时必须通知控件。事件名称的格式必须为PropertyNameChanged: *请注意,属性值在窗口最大化后是正确的,因为控件从数据源重新读取值
public event EventHandler NameChanged;
public string Name
{
get
{
return this._Name;
}
set
{
if (value != this._Name)
{
this._Name= value;
if (NameChanged != null) NameChanged(this, EventArgs.Empty);
}
}
}