gpt4 book ai didi

mvvm - 在 ZK 框架中使用 MVVM 的奇怪复选框行为

转载 作者:行者123 更新时间:2023-12-03 10:46:29 24 4
gpt4 key购买 nike

我在 MVVM 中发现了 zk 复选框的奇怪行为。我制作了一个 MVVM 表单,显示项目列表和所选项目的详细 View 。我在详细 View 上放置了复选框并将其绑定(bind)到我的 POJO 的 bool 属性。当我选择具有此属性值为真值的项目时,复选框会显示为选中状态,但接下来当我选择属性值为假的项目,然后再次选择具有真值的项目时,复选框会显示为未选中状态。
我可以使用 ZK 的 MVVM 教程 http://books.zkoss.org/wiki/ZK_Getting_Started/Get_ZK_Up_and_Running_with_MVVM 来说明这个问题(源代码http://sourceforge.net/projects/zkbook/files/GettingStarted/getzkup-20131127.zip/download)

添加到 Car 类 bool 属性:

private Boolean cool = false;

public Car(Integer id, String model, String make, String description, String preview, Integer price, boolean cool){
this.id = id;
this.model = model;
this.make = make;
this.preview = preview;
this.description = description;
this.price = price;
this.cool = cool;
}

public Boolean getCool() {
return cool;
}

public void setCool(Boolean cool) {
this.cool = cool;
}

更改 CarServiceImpl.java 为我们的演示初始化 bool 属性:
carList.add(
new Car(id++,
"Camry",
"Toyota",
"The Toyota Camry is a midsize car ... ",
"/img/car3.png",
24170, true));
carList.add(
new Car(id++,
"Century",
"Toyota",
"The Toyota Century is ... " ,
"/img/car4.png",
28730, true));

更改 searchMvvm.zul(添加标记为 INSERTED 的行):
<window title="Search" width="600px" border="normal" apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('tutorial.SearchViewModel')">
<hbox align="center">
Keyword:
<textbox value="@bind(vm.keyword)" />
<button label="Search" image="/img/search.png" onClick="@command('search')" />
</hbox>
<listbox height="160px" model="@bind(vm.carList)" emptyMessage="No car found in the result"
selectedItem="@bind(vm.selectedCar)">
<listhead>
<listheader label="Model" />
<listheader label="Make" />
<listheader label="Price" width="20%"/>
<listheader label="Cool" /> <!-- INSERTED -->
</listhead>
<template name="model">
<listitem>
<listcell label="@bind(each.model)"></listcell>
<listcell label="@bind(each.make)"></listcell>
<listcell>$<label value="@bind(each.price)" /></listcell>
<listcell><checkbox checked="@bind(each.cool)" /></listcell> <!-- INSERTED -->
</listitem>
</template>
</listbox>
<hbox style="margin-top:20px">
<image width="250px" src="@bind(vm.selectedCar.preview)" />
<vbox>
<label value="@bind(vm.selectedCar.model)" />
<label value="@bind(vm.selectedCar.make)" />
<label value="@bind(vm.selectedCar.price)" />
<label value="@bind(vm.selectedCar.description)" />
<checkbox checked="@bind(vm.selectedCar.cool)" label="Cool" /> <!-- INSERTED -->
</vbox>
</hbox>

之后启动 Tomcat 并在浏览器中输入 localhost:8080/tutorial/searchMvvm.zul。当您单击 Toyota Camry 项目时,一切正常,但是当您单击 Nissan Cifiro,然后再次单击 Toyota Camry 时,详细 View 中的复选框将未选中。但列表框中的复选框工作正常。

您知道解决此问题的任何解决方法吗?

最佳答案

我有同样的问题,但当我更改 getCool() 时已解决与 isCool() (在 ZK V7 上)

关于mvvm - 在 ZK 框架中使用 MVVM 的奇怪复选框行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104756/

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