雖然它可能是微不足道的,總結這些總數右視圖,我一直選擇將這些總數正確地放在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