我有Gtk TreeView
显示ArrayList
中的项目列表。 TreeView
设置为可重新排序,因此用户可以拖放列表中的项目以重新排序。
我的问题是,在重新排序后,如何更新原始ArrayList
以匹配新的TreeView
订单?
答案 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;