我的问题:我想获得按钮的listitem,以便我可以在MVVM zk中应用样式。
目前我有这个:
<listbox id="listbox" model="@bind(vm.myList) @template('items')">
<listhead>
<listheader hflex="3"label="Client" align="left" />
<listheader hflex="3"label="show" align="left" />
</listhead>
<template name="items" var="item">
<listitem value="@bind(item.client)" />
<listitem>
<button hflex="1" label="show"
onClick="@command('ShowClient')" />
</listitem>
</template>
</listbox>
因此,当我点击按钮显示时,会出现一个弹出窗口,我想将样式应用到单击按钮的客户端行。
答案 0 :(得分:0)
有一些方法可以解决这个问题 您可以在VM中使用以下内容:
@Command
public void showClient (@ContextParam(ContextType.COMPONENT) Button button) {
button.setStyle("");
}
现在,请注意这里。如果您的活动是从某个非Button
的组件触发的,那么您将获得ClassCastException
因此,当发生这种情况时,只需将Button
缩减为Component
,并在Button
时将其转换为Button
。
您也可以使用课程:HtmlBasedComponent
。
像这样你拥有支持setStyle
的最低等级,你永远不需要施放它。
大多数组件都继承自此类,因此ClassCastException
的可能性较小。