【问题标题】:How best can I Design my Model class我怎样才能最好地设计我的模型类
【发布时间】:2016-04-09 08:04:53
【问题描述】:

我有一个 WPF 应用程序,我对它有点陌生。几乎完成了视图和视图模型的设计。一直在设计 Model 类,我打算将其用作一个层,通过连接到数据库来为我提供所需的数据。

假设我有一个显示客户详细信息的网格。我想写一些类似打击的东西:

class CustomerModel
    {
        public DataView GetCustomerData()
        {
            // Fetch the data from Database and prepare a Dataview
            // return the DataView
        }
    }

我的问题是

  • 如果我要显示所有客户数据,那么上述方法就足够了。但是,如果我在网格的 GUI 上有一个过滤器选项,我应该编写一个单独的函数来根据过滤器参数获取数据吗? (可能会重载函数以适应过滤器参数)
  • 另外,假设我有 10 个网格,每个网格都需要来自不同表的数据。我必须写 10 个这样不同的类吗? (如CustomerModelOrderModelEmployeeModel.etc)

能否请您告诉我如何最好地使用模型组件?

【问题讨论】:

    标签: .net wpf c#-4.0 mvvm models


    【解决方案1】:

    如果我要显示所有客户数据,那么上述方法就足够了。但是,如果我在网格的 GUI 上有一个过滤器选项,我应该编写一个单独的函数来根据过滤器参数获取数据吗? (可能会重载函数以适应过滤器参数)

    将您的数据访问逻辑与模型分开,并使用 Command 访问逻辑(查找 async await 模式以避免冻结您的 UI)并填充您的模型。您可以使用 ListCollectionView 作为 DataGrids ItemSource 来轻松添加过滤和排序功能。

    另外,假设我有 10 个网格,每个网格都需要来自不同表的数据。我必须写 10 个这样不同的类吗? (如 CustomerModel、OrderModel、EmployeeModel.etc)

    取决于您打算做什么,但我认为为每个目的使用不同的模型是有意义的。您可以将基本属性中的一致性放在一起(例如,CustomerModel 具有类型为 PersonModelContact-property,因此您可以将具有相同类型的 PersonalData-property 添加到您的 EmployeeModel

    如果您需要更多详细信息或不清楚的地方,请询问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多