wxPython |多次从dataViewListCtrl中删除项目

wxPython |多次从dataViewListCtrl中删除项目,python,user-interface,wxpython,Python,User Interface,Wxpython,我想我在wxPython中从dataViewListCtrl中删除项目时遇到了一个大问题。 我有一个带有几行的dataViewListCtrl。用户可以标记和删除行。 要获取选择,我使用dataViewListCtrl中的GetSelections()方法,如下所示: def delSektion(self, event): tmpo = self.frame.m_dvlc.GetSelections() for i in tmpo: print "test"

我想我在wxPython中从dataViewListCtrl中删除项目时遇到了一个大问题。 我有一个带有几行的dataViewListCtrl。用户可以标记和删除行。 要获取选择,我使用dataViewListCtrl中的GetSelections()方法,如下所示:

def delSektion(self, event):
    tmpo = self.frame.m_dvlc.GetSelections()
    for i in tmpo:
        print "test"
所以我得到了一个DataViewItems列表。为了识别这些项,我使用DataViewItem中的getID()方法。 使用此id,我可以使用DeleteItem()方法删除DataViewListCtrl中的行

现在问题是:

如果用户多次执行此操作,DataViewListCtrl中的行索引将更改。但是ItemID仍然是相同的,所以在DataViewItem的ItemID和DataViewListCtrl的RowID之间没有连接

我希望你明白我的意思和我糟糕的英语-对不起


谢谢

您能否创建一个小的、可运行的示例?我认为项目ID应该足够独特。不过,您不应该依赖行号。谢谢,但要找到解决方案。有一个名为ItemToRow()的方法如下:对于self.frame.m_dvlc.GetSelections()中的sektion:item_id=self.frame.m_dvlc.ItemToRow(sektion)self.frame.m_dvlc.DeleteItem(item_id),您能创建一个小的、可运行的示例吗?我认为项目ID应该足够独特。不过,您不应该依赖行号。谢谢,但要找到解决方案。有一个名为ItemToRow()的方法,如下所示:对于self.frame.m_dvlc.GetSelections()中的sektion:item_id=self.frame.m_dvlc.ItemToRow(sektion)self.frame.m_dvlc.DeleteItem(item_id)