我有一个DTO类,在我的WinForms客户端中,我为它创建了一个数据源。在表单设计中,我将bindingsource绑定到此数据源,以便自动绑定所有控件。
在代码中,我执行以下操作将bindingsource绑定到空对象:
public void Clear()
{
var dto = new MyDTO();
bindingSource.DataSource = dto;
}
要从数据库中获取项目并显示它是类似的:
public void Load(int id)
{
var dto = dtoRequest.Get(id);
bindingSource.DataSource = dto;
}
但是我想知道数据源设置后数据是否已更改。我是否需要在DTO课程中实现INotifyPropertyChanged?因为如果是这样的话,那将首先打败DTO的目的。
还有其他解决方案吗?
答案 0 :(得分:0)
我和你一样开发,使用DTO到侧面VIEW。 我从未使用过INotifyPropertyChanged。如果您想知道数据何时发生了变化,您只需使用BindingSource的事件或在DTO中构建属性。
另外,请参阅我对这篇文章的回答
How to set values in cells of row in DatagridView when I change field value?
这个着名的问题
Implementing INotifyPropertyChanged - does a better way exist?
我希望我已经给你指示了。 如果您有任何疑问,请在这里问我。
请记住,很大程度上取决于我们如何构建用于开发的“框架”。
通过这种策略,我已经完成了所有工作,这并不意味着使用INotifyPropertyChanged是个坏主意。