虽然它可能是微不足道的,总结这些总数右视图,我一直选择将这些总数正确地放在ViewModel中。这给了我单元测试的能力,我的总数是准确的。如果总体逻辑是在视图中完成的,那么就没有简单的方法来测试这样的事情。这使得视图逻辑简单并且仅限于显示值,而不是执行将值累加起来所需的“逻辑”。
把这个提升到一个新的水平,如果一个“总数”的规则是负数不会“计算”总数呢?那么这个观点不仅要知道如何总结这些项目,还需要知道“不计负数”的商业规则。我发现最好让服务器尽可能地完成尽可能多的工作,并尽可能使视图“简单”(精简)。
在你的榜样,我可能有一个视图模型看起来像:(请注意,我添加了一个“行汇总”,以我的例子还有,除了列总计)
Public Class MyViewModel
Public Property Columns As List(Of ColInfo)
Public Property Items As List(Of RowItem)
End Class
Public Class ColInfo
Public Property Id As Guid
Public Property Name As String
Public Property ColTotal As Integer
End Class
Public Class RowItem
Public Property Name As String
Public Property ColValues As Dictionary(Of Guid, Integer)) ' Value lookup for each column
Public Property RowTotal As Integer
End Class
你是否以某种方式改变视图使其看起来像一个“总计”行?我在想,如果你想在总数之前排队。或者你只是调用行名称总计并继续前进?我可以试试看看它的外观。 – Maestro1024
@ Maestro1024当然,您可以改变视图以适应您的任何要求。 – ckittel