如何更新ArrayList以匹配用户排序的TreeView

时间:2016-01-07 15:18:22

标签: c# arraylist treeview gtk

我有Gtk TreeView显示ArrayList中的项目列表。 TreeView设置为可重新排序,因此用户可以拖放列表中的项目以重新排序。

我的问题是,在重新排序后,如何更新原始ArrayList以匹配新的TreeView订单?

1 个答案:

答案 0 :(得分:0)

我设法提出了一个解决方案 - 下面的代码只打印出列表中的所有项目;希望你能看到如何通过这样做你可以找到项目的正确索引,从而在相关的ArrayList中重新排序。

        TreeIter iter;
        yourNodeView.Model.GetIterFirst (out iter);
        for (int i = 0; i < yourNodeView.Model.IterNChildren(); i++)
        {
            string result = ((TypeOfListItem)sequencerNodeView.Model.GetValue (iter, 0)).ToString();
            //Here you would add the TypeOfListItem instance to a new ArrayList, and then after the loop swap out the old ArrayList for the new one. 
            Console.WriteLine("print the item "+result);
            yourNodeView.Model.IterNext(ref iter);
        }

TypeOfListItem当然可以随时进行。我编写了一个名为MyListItem的类,它具有标题和描述等参数,因此我可以使用以下命令访问它们:

string result = ((MyListItem)sequencerNodeView.Model.GetValue (iter, 0)).title;