1

明確にするために、3つの配列があります。ArrX、ArrY、ArrZ

これらは配列に入れられます: GridArr

私がやろうとしているのは、情報を収集し、必要な情報を Arr1、Arr2、Arr3 に分類する wpf アプリです。それらを GridArr のすぐ内側に配置します。したがって、データグリッドにロードできます。ユーザーは、変更された値を編集して、元の配列と同じ配列に取得できます。(ArrX、ArrY、ArrZ)

データグリッドの視覚的な例:

Test    | Dest    | Testy
ArrX[0] | ArrY[0] | ArrZ[0]
ArrX[1] | ArrY[1] | ArrZ[1]
ArrX[2] | ArrY[2] | ArrZ[2]

ArrX は Test への値になります。目的地などに到着

問題は、GridArr のサイズを宣言しなければならないことです。そして、GridArr の適切なサイズを返す関数を作成しましたが、配列をクラス内に配置せずに (エラーを取得せずに) 宣言することはできません。また、GridArr がクラス内にある場合、どうすればよいかわかりません。新しいユーザーが編集した値をArrX、ArrY、およびArrZに取得することに成功しました。

    string[] ArrX = { "test", "", "asd" };
    int[] ArrY = { 1, 2, 3 };
    int[] ArrZ = {111, 2212, 32323};


    private LootData[] GridArr = new LootData[ArrX.Length]; /* Error occurs.
    What should I do to declare it´s length without writing for example 3 */

    public MainWindow()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
            GridArr[0] = new LootData(ArrX[0], ArrY[0], ArrZ[0]);//Code LootData below
            GridArr[1] = new LootData(ArrX[1], ArrY[1], ArrZ[1]);
            GridArr[2] = new LootData(ArrX[2], ArrY[2], ArrZ[2]);

            dataGrid1.ItemsSource = null;
            dataGrid1.ItemsSource = arr;
    }

その背後にあるものを誰かが知りたい場合に備えて、LootData クラス。

class LootData
{
    private string name;
    private int dest;
    private int id;

    public LootData(string Name, int Dest, int Id)
    {
        name = Name;
        dest = Dest;
        id = Id;
    }

    public string Name 
    {
        get { return name; } 
        set { name = value; } 
    }

    public int Dest
    {
        get { return dest; }
        set { dest = value; }
    }

    public int Id
    {
        get { return id; }
        set { id = value; }
    }
}
4

1 に答える 1

0

GridArrコンストラクターまたはボタンイベントハンドラーでフィールドを初期化します

private LootData[] GridArr;

public MainWindow()
{
    InitializeComponent();
    GridArr = new LootData[ArrX.Length];//ArrX.Length is accessible now
}
于 2012-10-31T22:20:15.130 に答える