我的 UI 中需要一个 BindingList 来提供我的集合和 DataGridView 之间的双向数据绑定(bind)。但是,从业务层(或域层、服务层、数据层等)返回 BindingList 似乎并不正确。也就是说,我只是因为 UI 需求而使用 BindingList,现在这个 UI 需求将与我的域层耦合。
执行此操作的“正确”解耦方法是什么?我是否应该返回 IList,然后将其复制到 BindingList 中以用于演示目的?从现实世界的角度来看,这种开销值得吗?
最佳答案
没有 IList 的复制(至少我希望您不想创建副本/克隆)。您通常要做的就是在同一个 IList 对象上创建另一个引用。所以返回一个 IList 对象没什么坏处。
您可以返回,例如一个 List 对象并从绑定(bind)列表(位于您的 UI 中)中引用它。
在我看来,返回 IList(List、HashTable aso)对象比 BindingList 更好,因为您可以在不同的 UI(控制台、Web、Win、服务)上使用前者。例如。在 Web 应用程序中使用绑定(bind)列表没有任何优势。
关于c# - 您是否应该从业务层(或服务层、域模型等)返回 BindingList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683593/