gpt4 book ai didi

java - 是否可以使用 @NotifyChange 而不是 BindUtils.postNotifyChange?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:17 28 4
gpt4 key购买 nike

我在 @NotifyChange 和 BindUtils.postNotifyChange 之间有一个混淆使用,为什么要使用这两个事件。在我阅读这个问题之前 In ZK Can we PostNotifyChange more than one variables .但是我不明白为什么要使用这个多个变量。

这是一个例子:

    @Command
@NotifyChange({ "folderInfoList", "isDisabled", "selectedFolderInfo" })
public void refreshFolderInfo() {
logger.debug("Refresh Icon selected");
if (isDirty()) {
Messagebox.show(pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED"), pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED_TYPE"),
Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION, new EventListener<Event>() {
public void onEvent(Event event) throws Exception {
if (Messagebox.ON_OK.equals(event.getName())) {
loadFolderInfoList();
selectedFolderInfo = null;
BindUtils.postNotifyChange(null, null, FolderInfoEditViewModel.this, "folderInfoList");
} else {

}
}
});
} else {
loadFolderInfoList();
selectedFolderInfo = null;
}
}

谁能告诉我:

我有四个问题:

1.为什么在@NotifyChange中使用isDisabled?

2.这里这个方法我可以用@NotifyChange代替BindUtils.postNotifyChange吗?

3.@NotifyChange 和 BindUtils.postNotifyChange 有什么区别?

4.我只想在方法中的这两个@NotifyChange 和BindUtils.postNotifyChange 之间使用一个事件。这个方法可行吗?

最佳答案

1) 如果与"isDisabled" 关联的变量在任何情况下都未被此调用更改,则您不需要。
但也许它在 loadFolderInfoList()
内部发生了变化2) 你可以想象 @NotifyChange({"arg1","arg2",...,"argN"})

for(String arg : args){ 
BindUtils.postNotifyChange(null, null, refToClassCalledFrom, arg);
}

3) 但只要您获得对 VM 的引用,就可以从任何地方调用 BindUtils.postNotifyChange(...)
4) 在我看来,这段代码似乎来自 FolderInfoEditViewModel 的嵌套类,它本身就是 VM 以及 FolderInfoEditViewModel
在这种情况下,为嵌套类调用了 @NotifyChage(...) 但是

BindUtils.postNotifyChange(null, null, FolderInfoEditViewModel.this, "folderInfoList");

指的是它的外部类 FolderInfoEditViewModel 并且只能通过这种方式存档。

关于java - 是否可以使用 @NotifyChange 而不是 BindUtils.postNotifyChange?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19977102/

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