2013-03-12 24 views
0

我的屬性是:的ObservableCollection的封裝不起作用

private static ObservableCollection<Wynik> lottoWyniki = new ObservableCollection<Wynik>(); 
    public static ObservableCollection<Wynik> LottoWyniki 
    { 
     get { return lottoWyniki; } 
     set { lottoWyniki = value; } 
    } 

當後面的代碼我想將對象添加到這個集合:

for(i=2;i<=7;i++) 
       LottoWyniki.Add(new Wynik(i,Date)); 

每一個新的obcject是我加入正在取代之前的所有對象。所以在這段代碼結束時,我得到了包含一個(最後一個)對象的ObservableCollection,它重複了6次。我做錯了什麼?

編輯: 在Wynik的構造函數中我做:

public Wynik (int l, DateTime d) 
{ 
    Liczba = l; 
    Data = d; 
} 

類Wynik:

class Wynik 
{ 
    private static DateTime data; 
    public static DateTime Data 
    { 
     get { return data; } 
     set { data = value; } 
    } 

    private static int liczba; 
    public static int Liczba 
    { 
     get { return liczba; } 
     set { liczba = value; } 
    } 

    public Wynik (int l, DateTime d) 
    { 
     Liczba = l; 
     Data = d; 
    } 
} 
+5

您發佈的代碼不會導致該行爲,因此我懷疑您的實際代碼會調用捕獲的循環變量。 – 2013-03-12 16:20:34

+0

當我調試程序時,我可以看到一個循環的單個增量在時間上增加了我的變量(i ++)並正確地將它添加到集合中。但它是在每個索引而不是一個(下一個)索引上添加對象。 – r9s 2013-03-12 16:31:09

+0

@ r9s當你在調試的時候,如果你在你的add中加入了一個斷點,那麼我的價值是什麼,你在Wynik的構造函數中做了什麼有趣的事情? – 2013-03-12 16:41:18

回答

1

最有可能你的類的變量是靜態的。嘗試將所有屬性更改爲非靜態成員,這將解決您的問題。

+1

我閱讀了這個答案,並且即將對「這應該是一個評論」和「他沒有辦法做到這一點」的評論作出評論。然後我看到了OP的編輯,這顯然是問題所在。 (請更改它,以便它不是以問題的形式提供,而是澄清問題屬於評論中,而不是答案。) – Servy 2013-03-12 16:58:25

0

類改成這樣:

class Wynik 
{ 
    private DateTime data; 
    public DateTime Data 
    { 
     get { return data; } 
     set { data = value; } 
    } 

    private int liczba; 
    public int Liczba 
    { 
     get { return liczba; } 
     set { liczba = value; } 
    } 

    public Wynik (int l, DateTime d) 
    { 
     Liczba = l; 
     Data = d; 
    } 
} 

您的問題是,你的屬性都static,這意味着你的類股的每個實例的相同財產。這並不是說你有6次使用同一個對象的數組,你有6個不同的對象,你只是無法將它們分開,因爲它們都具有相同的值DataLiczba

+0

與其提供代碼轉儲,不如考慮解釋您所做的更改以及解決問題的原因。 – Servy 2013-03-12 17:02:20

+0

感謝它現在的作品 – r9s 2013-03-12 17:05:25

+0

@MattBurland我正在幫助你提高你的帖子的質量。通過指出帖子中的問題,他們可以修復,而不是忽略它們,並讓低質量的內容留在網站上。您應該願意接受對您公開發布的內容的建設性批評,尤其是在SO這樣的反饋受到高度鼓勵的情況下。 – Servy 2013-03-12 17:11:31