0

wpfでキャンバスのリストを作成し、ボタンクリックイベントがあります。ボタンを押すと、新しいキャンバスがリストに追加されるようにしたいと思います。しかし、別のウィンドウでキャンバスのプロパティを変更しようとすると、インデックスが範囲外であると表示されます。これは、リストがキャンバスを追加しなかったことを意味します。これをチェックするメソッドを作成しましたが、実際にはインデックスが0であると表示されます。これも配列で行います。ここでも同じですが、値を変更しますが、値は0と書き込まれます。これはコードです。

public partial class New_Paint : Window
{
    public List<Canvas> paintsList = new List<Canvas>();
    public Canvas painting = new Canvas();

    private void ok_MouseUp(object sender, MouseButtonEventArgs e)
    {
        paintsList.Add(painting);
        this.Close();
    }
}

これは、そのサイズを確認するための方法です。

public int getSize()
{
    return paintsList.Count;
}

メインウィンドウのコードは次のとおりです。

private void button1_Click(object sender, RoutedEventArgs e)
{
    textBox1.Text = paint.getSize() + "";
}

「OK」をクリックしても、メトスは0を返します。リストはアイテムを追加しません。

4

1 に答える 1

0

私はあなたがこれに慣れていないと思いますか?キャンバスのリストは New_Paint のインスタンスに属し、ウィンドウを閉じる前にそのリストにキャンバスを 1 つだけ追加します (少なくとも表示したコードでは)。なぜ複数を期待するのかわかりません。子ウィンドウを管理しているものによって所有されるキャンバスのマスター リストが必要です。

于 2012-09-17T13:29:23.213 に答える