Curl Global Community
ListViewにてどの行をクリックしても最終行の値が表示されてしまう - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Caede questions (https://communities.curl.com/forumdisplay.php?fid=23)
+--- Thread: ListViewにてどの行をクリックしても最終行の値が表示されてしまう (/showthread.php?tid=876)



ListViewにてどの行をクリックしても最終行の値が表示されてしまう - freed - 03-22-2013

ボタン押下時にListViewにListViewItemDataを追加するようなロジックを作成したのですが、
実際に実行してみると、2行目のリストを押下すると 「10行目がクリックされました!」
と出力されてしまいます。

2行目のリストを押下した際に「2行目がクリックされました!」とするには
どうしたらよいでしょうか?
Code:
{self.kensakucb.add-event-handler
    {on Action do
        {for i:int = 0 to 9 do
            {self.b-list-view.append
                {ListViewItemData
                    label = i & "行目" ,
                    {on Action do
                        {popup-message i & "行目がクリックされました!" }
                    }
                }
            }
        }
    }
}



RE: ListViewにてどの行をクリックしても最終行の値が表示されてしまう - kim - 03-22-2013

以下のように繰り返し処理内で def宣言で iの値を取得しておき、
これを利用すれば動きますので解決できるのではないでしょうか。

Code:
{self.kensakucb.add-event-handler
    {on Action do
        {for i:int = 0 to 10 - 1 do
            def j = i
            {self.b-list-view.append
                {ListViewItemData
                    label = j & "行目" ,
                    {on Action do
                        {popup-message j+1 & "行目がクリックされました!" }
                    }
                }
            }
        }
    }
}