gpt4 book ai didi

selection - qooxdoo - 自定义列表项小部件选择

转载 作者:行者123 更新时间:2023-11-30 23:54:55 26 4
gpt4 key购买 nike

我制作了自定义列表项 View (基于 http://news.qooxdoo.org/tutorial-part-4-2-custom-widgets-4 )。

我对此列表中的选择项目有疑问。总是选择第一个元素(无论我将单击列表中的哪个元素)。

我应该怎么做才能解决我的问题?

这是我的列表项小部件:

qx.Class.define("project.MyView", {
扩展:qx.ui.core.Widget,
包括:[qx.ui.form.MModelProperty],

构造:函数(){
this.base(参数);

var layout = new qx.ui.layout.Grid(4, 2);
layout.setColumnFlex(1, 1);
this._setLayout(布局);

this._createChildControl("icon");
this._createChildControl("date");
this._createChildControl("描述");
},

特性 : {
外貌 : {
精炼:真,
初始化:“列表项”
},

图标 : {
检查:“字符串”,
应用:“_applyIcon”,
可为空:真
},

日期 : {
检查:“字符串”,
申请:“_applyDate”,
可为空:真
},

描述 : {
检查:“字符串”,
应用:“_applyDescription”,
可为空:真
}
},

成员:{

_createChildControlImpl:函数(id){
变量控制;

开关(ID){
案例“图标”:
控制 = 新 qx.ui.basic.Image(this.getIcon());
control.setAnonymous(true);
this._add(控制,{
行:0,
列:0,
行跨度:2
});
休息;

案例“日期”:
control = new qx.ui.basic.Label(this.getDate());
control.setAnonymous(true);
this._add(控制,{
行:0,
栏目:2
});
休息;

案例“描述”:
control = new qx.ui.basic.Label(this.getDescription());
control.setAnonymous(true);
control.setRich(true);
this._add(控制,{
行:0,
栏目:1
});
休息;
}

返回控制 || this.base(参数,id);
},

_applyIcon:函数(值,旧){
var icon = this.getChildControl("icon");
icon.setSource(值);
},

_applyDescription:函数(值,旧){
var description = this.getChildControl("description");
描述.setValue(值);
},

_applyDate:函数(值,旧){
var date = this.getChildControl("date");
日期.setValue(值);
}

},

破坏:函数(){

}

});

...以及我如何使用它:

this.list = new qx.ui.form.List();
this.listController = new qx.data.controller.List(null, this.list);
this.listController.setDelegate({
创建项目:函数(){
返回新项目.MyView();
},

绑定(bind)项目:函数( Controller ,项目,ID){
controller.bindProperty("description", "description", null,item, id);
controller.bindProperty("icon", "icon", null, item, id);
controller.bindProperty("date", "date", null, item, id);
},

配置项目:功能(项目){
item.getChildControl("icon").setWidth(48);
item.getChildControl("icon").setHeight(48);
item.getChildControl("icon").setScale(true);
item.setMinHeight(52);
}
});

最佳答案

看起来问题出在 bindItem 函数中。一旦您提供自己的 bindItem 函数,所有默认绑定(bind)属性都不再绑定(bind)。这意味着标签、图标和模型不再同步。我没有尝试过你的代码,但我想通过简单的模型绑定(bind),问题就会消失。

controller.bindProperty("", "model", null, item, id);

如果您想要在模型属性中使用不同的东西,例如在您的选择中,这是必要的。此代码行仅使用整个对象作为模型,这在大多数情况下是一个好主意。

最好的,
马丁

关于selection - qooxdoo - 自定义列表项小部件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4493470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com