找回密码
 立即注册
收起左侧

qml属性绑定

4
回复
6884
查看
[复制链接]
累计签到:101 天
连续签到:1 天
来源: 2017-2-7 10:50:40 显示全部楼层 |阅读模式
15Qter豆
我在tableview里加了一列checkbox,checked值绑定listmodel。初始化的时候没问题,但以后listmodel值变化CheckBox无反应。我记得最初我调好了才去改其他的,回头发现又不对了。部分代码tableview的CheckBox

TableViewColumn            {                role: "SelectCurrentRow"                width: 50                movable: false                delegate: CheckBox                {                    checked: mylistmodel.get(styleData.row).selectcurrentrow                        
                    onClicked:                    {                        mylistmodel.setProperty(styleData.row,"selectcurrentrow",checked);                    }                    style:CheckBoxStyle                    {                        indicator: Rectangle                        {                            implicitWidth: 16                            implicitHeight: 16                            radius: 3                            border.color: control.activeFocus ? "darkblue" : "gray"                            border.width: 1                            Rectangle                            {                                 visible: control.checked                                 color: "#555"                                 border.color: "#333"                                 radius: 1                                 anchors.margins: 4                                 anchors.fill: parent                            }                        }                    }                }            }listmodel初始化mylistmodel.append({                                selectcurrentrow: false,                                CardID: staffData[0][1],                                name: staffData[0][2],                                age: staffData[0][3],                                **: staffData[0][4],                                departName: staffData[0][5],                                duty: staffData[0][6],                                address: staffData[0][7],                                })        for(var i=1;i<staffData.length;i++)        {            mylistmodel.append({                                    selectcurrentrow: true,                                    CardID: staffData[i][1],                                    name: staffData[i][2],                                    age: staffData[i][3],                                    **: staffData[i][4],                                    departName: staffData[i][5],                                    duty: staffData[i][6],                                    address: staffData[i][7],                                    })        }初始化效果如图退出或重新加载listmodel时报错:TypeError: Cannot read property 'selectcurrentrow' of undefined


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:101 天
连续签到:1 天
2017-2-7 14:51:29 显示全部楼层
补充,我把listmodel换成了一个数组。CheckBox的checked属性换成checkedState: checkedArray[styleData.row]。跟上面一样,会根据初始化给的值勾选,但是数组值改变依然没反应,退出报错 Unable to assign [undefined] to int。改成checkedState: checkedArray[1]。则不报错,但是没有任何操作的情况下,不靠styleData.row怎么确定当前行呢,或者正确的应该怎么改,求大神指点
回复

使用道具 举报

累计签到:101 天
连续签到:1 天
2017-2-7 15:25:15 显示全部楼层
解决property var styleDataRow;
                    Component.onCompleted:
                    {
                        styleDataRow=styleData.row;
                    }
回复

使用道具 举报

累计签到:101 天
连续签到:1 天
2017-2-7 15:26:15 显示全部楼层
已解决,就差一次刷新了
回复

使用道具 举报

尚未签到

2017-2-7 22:47:51 显示全部楼层
能自己解决就很好了。话说代码那段最好编辑一下,用专门的代码框来显示,不然看着很头疼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了