0

我的财产是:

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));

我添加的每个新对象都在替换之前存在的所有对象。所以在这段代码的结尾,我得到了 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;
    }
}
4

2 回答 2

1

您的类的变量很可能是静态的。尝试将所有属性更改为非静态成员,这将解决您的问题。

于 2013-03-12T16:56:02.360 回答
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;
    }
}

您的问题是您的属性 all static,这意味着您的类的每个实例都共享相同的属性。并不是说你有一个包含同一个对象的数组 6 次,你有 6 个不同的对象,你只是无法区分它们,因为它们对于Dataand都有相同的值Liczba

于 2013-03-12T17:00:33.160 回答