ListView 的每个元素的唯一 ID

Unique id for each element of a ListView

我有 ListViewItems,我需要每个 element 都有一个唯一的 id

但是我的物品有两个条件:

我的想法是做这样的事情:

ListView {
    id: list
    property int uniqueId: 0

    width: 180; height: 200

    model: myModel

    delegate: Text {
        property int uniqueid: list.uniqueId
        text: uniqueid
    }
    Component.onCompleted: list.uniqueId++
}

但是它不起作用因为当list.uniqueId更新时,它会更新我的物品ID并且它们都将具有相同的ID ( id = list.uniqueId)

我该如何继续?

嗯,如果你严格(或不创建)绑定,它不会自动更新:

delegate: Text {
        Component.onCompleted: text = uniqueId++
}

但是,我认为避免这种情况并不能真正解决您的设计问题。您应该做的是将唯一 ID 部分一直实施到模型数据中。