DTO和bindingsource

时间:2014-11-10 12:22:52

标签: c# winforms dto

我有一个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的目的。

还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

我和你一样开发,使用DTO到侧面VIEW。 我从未使用过INotifyPropertyChanged。如果您想知道数据何时发生了变化,您只需使用BindingSource的事件或在DTO中构建属性。

enter image description here

另外,请参阅我对这篇文章的回答

How to set values in cells of row in DatagridView when I change field value?

这个着名的问题

Implementing INotifyPropertyChanged - does a better way exist?

我希望我已经给你指示了。 如果您有任何疑问,请在这里问我。

请记住,很大程度上取决于我们如何构建用于开发的“框架”。

通过这种策略,我已经完成了所有工作,这并不意味着使用INotifyPropertyChanged是个坏主意。