2012-04-24 35 views
1

我在C#中的新手,特別是(當然!)事件......添加事件改變的項目列表

在我的代碼中,我們從事件得到一個元素T,並希望將其添加到一個列表(List)。

因爲T簽訂的「OnPropertyChanging」,它改變無處不在我的代碼,因此,所有在列表中的成員都是相同的。那麼我應該如何實現在List中保存所有過去的T值呢?

在此先感謝。

EDIT(試圖更好地解釋它):

我有一個通過DDE,我用它來進行實時計算接收數據的應用程序。到現在爲止,沒有問題。我必須使用以前的數據時纔會出現問題,因爲我無法將它們保存在列表中。

我創造我的第一個數據讀取列表和值添加到它:

ticks = new List<Tick> { tick }; // where tick comes via DDE 

第二雷丁後,我想用列表的最後一個值,並將它與最新:

Tick prevTick = ticks.Last(); 
Tick currTick = tick;    // this tick is different from the former 

但是我確認prevTick等於currTick。顯然,在我有機會將其傳遞給prevTick之前,「PropertyChange」會在程序的所有實例中更改滴答,修改滴答的內容。

+1

對不起你說你想保存當前的狀態被顛倒了。它不清楚你在問什麼。 – 2012-04-24 23:01:24

+0

對不起,如果我不清楚。是。我想在T被更改(反轉)之前保存T的過去值。問題是,功能A在將它保存在我管理列表的函數B中之前對其進行了更改。我想保存以前的對話的價值。 – 2012-04-25 02:31:52

回答

0

假設Tick是一個類,prevTickcurrTick最有可能相同的情況下,和底層代碼提供Tick實例只是更新由該實例存儲的值。這可以解釋你以爲PropertyChange改變全部打勾實例 - 它實際上是隻有一個實例

我會創造我自己的類與每一塊Tick包含數據的屬性,並填充這個類的一個新實例您的歷史清單。如果你只是需要從每個Tick一個數字,然後你可以只是有一個List<int>來存儲您的歷史。

+0

謝謝你,davisoa。現在它應該像現在這樣工作。 – 2012-04-25 19:38:30