2012-09-10 36 views
0

我有一個臨時數據的可視收集。從這個視覺集合中清除所有記錄的正確方法是什麼?Lightswitch清除可視收集

EDIT(後晏的請求的什麼,我試圖做一個更好的畫面)

在一個按鈕的點擊,我用填充基於用戶定義的參數數據的visualcollection。用戶可以根據需要編輯這些數據。然後,當他們點擊保存時,我正在將這些數據寫入不同的數據庫表。 (之所以我通過代碼來做這件事,是因爲visualcollection的形狀並不直接映射到我的SQL數據庫中的單個表 - 一個Lightswitch方案不允許輕鬆實現,我注意到了。)但是,如果用戶在填充集合後更改用於填充集合的參數,我需要清除該集合並根據新參數重新填充該集合。正是在這裏,我希望只是調用[visualcollection] .clear方法。但沒有這樣的運氣。我已經試過以下每個方法都沒有成功:

1)在visualcollection每個項目,調用item.details.delete(這將返回一個錯誤有關的東西不被當前上下文跟蹤的項目)

2)將第一項設置爲selecteditem,然後調用visualcollection.removeselected。迭代第一項!= null。 (這一個明顯不能刪除集合中的所有項目 - 它刪除了一些,但不是全部 - 我不明白爲什麼)。

所以現在我已經走了調用這個的路線。在屏幕上刷新(在將用戶參數存儲在靜態變量中以便我可以在屏幕的dataworkspaceinitialized事件中重新填充它們之後)。這一步似乎太激烈了,雖然......我真的應該儘可能在屏幕上調用刷新以清除視覺集合嗎?

回答

0

「最好」的方式可以依賴於幾個不同的東西,它是一個附加的數據庫,還是內在的數據庫?您是否熟悉客戶端在服務器上觸發代碼?涉及多少條記錄等等?是否有一個現有的流程,這可能只是它的一個自然部分?或者您是否打算通過單擊屏幕上的按鈕來執行操作?

正如你所看到的,這不是一個簡單的答案,不知道你想做什麼更多。

+0

我明白Yann;我已編輯我的問題,包括此信息 –

+0

謝謝肖恩,該信息有助於更好地理解你的情況。這聽起來像您正在使用的程序集合尚未由與屏幕集合的DataWorkspace相同的DataWorkspace創建。這些幫助有用? –

+0

謝謝Yann有一種方法可以確保可視化集合的程序化填充是在與屏幕的數據空間相同的數據空間中完成的? –