我有一个DTO类,在我的WinForms客户机中,我正在为它创建一个数据源。在表单设计中,我将bindingsource绑定到此数据源,以便自动绑定所有控件。
在代码中,我执行以下操作将bindingsource绑定到一个空对象:
public void Clear()
{
var dto = new MyDTO();
bindingSource.DataSource = dto;
}要从db中获取项目并显示它,请执行以下操作:
public void Load(int id)
{
var dto = dtoRequest.Get(id);
bindingSource.DataSource = dto;
}但是,我想知道在设置数据源之后,数据是否发生了变化。我需要在我的DTO类中实现INotifyPropertyChanged吗?因为如果是这样的话,它就会违背DTO的初衷。
还有其他的解决方案吗?
发布于 2014-11-10 22:11:35
我的开发就像你一样,在侧视图中使用DTO。我从未使用过INotifyPropertyChanged。如果您想知道数据何时发生了更改,则必须只使用BindingSource的事件或DTO中的build属性。

此外,请参阅我对这篇文章回答
How to set values in cells of row in DatagridView when I change field value?
这个著名的问题
Implementing INotifyPropertyChanged - does a better way exist?
我希望我已经给你指路了。如果你有任何问题,请在这里问我。
请记住,这在很大程度上取决于我们如何构建开发的“框架”。
有了这个策略,我已经完成了我所有的工作,这并不意味着使用INotifyPropertyChanged是一个坏主意。
https://stackoverflow.com/questions/26843747
复制相似问题