QML - 无法将组合框模型绑定到变体列表项

Posted

技术标签:

【中文标题】QML - 无法将组合框模型绑定到变体列表项【英文标题】:QML - Can not binding Combobox model to a variant list item 【发布时间】:2019-02-26 02:26:51 【问题描述】:

谁能帮我解决这个问题?我无法将列表变体绑定到组合框。

我的代码在这里

Window 
  property var nameList: []
  id: mainWindow
  visible: true
  minimumWidth: 1024
  minimumHeight: 600
  width: minimumWidth
  height: minimumHeight

  ComboBox
    id: cbo1
    currentIndex: 0
  

  Binding
    target: cbo1
    property: "model"
    value: nameList
  

  Component.onCompleted: 
    for(i = 0; i < 5; i++) 
        nameList.push(i)
        console.log("data: " + nameList[i])
    
  

感谢任何帮助,非常感谢!

【问题讨论】:

【参考方案1】:

要使绑定起作用,必须更改属性。将项目添加到列表不会修改列表的引用,因此对于绑定列表永远不会改变。解决方案是创建一个临时列表来替换原始列表:

Component.onCompleted: 
    var tmp = [];
    for(var i = 0; i < 5; i++) 
        tmp.push(i)
    
    nameList = tmp; // change property

【讨论】:

以上是关于QML - 无法将组合框模型绑定到变体列表项的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET 2005 - 无法绑定到新的显示成员 - 组合框 - 数组

如何将列表绑定到组合框?

我们如何将日期字段绑定到具有 2 列的“值列表”组合框?

c# 组合框绑定到对象列表

如何自动展开到组合框中的重复条目?

从绑定到数据集的组合框中删除重复项