2014-01-23 22 views
0

我正在關注wpf mvvm。這裏我想要顯示主鍵值+ 1.即,當代碼執行時,如果表格爲空,則將主鍵的值顯示爲1.如果表格有1行,則顯示2等等。所以使用這種類型。如何在wpf mvvm的表中獲取主鍵的最高值。如何獲取表中主鍵的最高值

我可以使用Max功能嗎?那麼如何?

回答

0

我不太明白你想達到什麼,因爲首先你在談論表中的「最高價值」,然後接下來你說的是「如果表有1行,然後顯示2「。

無論哪種方式,在MVVM中,鏈接到Model的所有計算都放置在ViewModel中。 如果你想顯示最高「任何你想對秀」的假設 - TextBox,你需要:

(在視圖模型)

  1. 創建integer那將代表你想要的最大值,假設它叫做MyMaximum。綁定到它在視圖(到TextBox例如)
  2. 充分利用收藏你綁定到你的ObservableCollection
  3. 訂閱的ObservableCollection
  4. OnCollectionChanged每次OnCollectionChanged正在你應該重新計算MyMaximum你想要的方式(例如,遍歷列表尋找最大值)。

除非表中的數據不是綁定到ViewModel。你需要精確。

如果是這樣的話,那麼計算應該在查看一側完成。如果您使用MVVM並在那裏計算,您需要創建附加行爲。

0

你可以這樣做。讓我們假設你正在使用數據表和主鍵列名爲「ID」:

private static int GetNextId(DataTable table) 
{ 
    return table.Rows.Count > 0 ? table.AsEnumerable().Max(row => (int)row["ID"]) + 1 : 1; 
} 

如果不適合,請具體談談你所需要的。