c# - 您是否应该从业务层(或服务层、域模型等)返回 BindingList?

标签 c# datagridview bindinglist business-logic-layer service-layer

我的 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/

相关文章:

c# - 我需要在 ASP .Net Core 3.1 Web API 启动时执行异步方法

c# - C#中如何将数据表绑定(bind)到datagridview

c# - 如何为 PropertyDescriptor 定义类级属性以对 BindingList 进行排序?

c# - 在 XAML 中使用 System.Type

C# 防止调整两个 splitcontainer 面板的大小

c# - 在 UWP 应用中切换音频

c# - 创建可以绑定(bind)到 DataGrid 的自定义集合

c# - 如何处理 DataGridView 编辑控件的绘制?

c# - ASP.NET 2.0 网格中的分页改进

c# - c# 2.0(BindingList)中泛型缺少协变的解决方案