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

私が追加するすべての新しいオブジェクトは、以前にあったすべてのオブジェクトを置き換えています。したがって、このコードの最後に、1つの(最後の)オブジェクトを含むObservableCollectionが6回繰り返されています。私は何を間違っているのですか?

編集:Wynikのコンストラクターで私はやっています:

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

クラスワイニック:

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

問題は、プロパティがすべてであったことです。つまり、クラスのすべてのインスタンスが同じプロパティstaticを共有します。同じオブジェクトを持つ配列が6回あるわけではなく、6つの異なるオブジェクトがあり、との値がすべて同じであるため、それらを区別する方法がありませんでした。DataLiczba

于 2013-03-12T17:00:33.160 に答える