我有一个带有弹出列表掩码的模拟块。 此列表中包含依赖于其他参数的选项。可以从掩码界面更改此参数。
假设对于option A
,弹出列表包含{Choice1, Choice2}
,而对于option B
,弹出列表包含{Choice1, Choice2, Choice3, Choice4}
。
当我为option A
更改option B
时,弹出列表不会更新,它仍会显示{Choice1, Choice2}
。如果掩码已关闭然后重新打开,弹出列表将显示{Choice1, Choice2, Choice3, Choice4}
。
在这种情况下,这不是一个问题,但是当从option B
转移到option A
时,用户仍然可以选择Choice3
或Choice4
,当块关闭并重新打开时,他的实际选择将是Choice1
。这会带来威胁,因为用户可以选择Choice4
,关闭面具并运行他的模型。
我可以确认在选项选择时正确更新了蒙版样式,而不是在蒙版关闭或打开时。此外,该块也在Matlab 2014b上使用完全相同的代码,并且列表在正确的时刻正确更新(也就是:on option changed)。
对此有何解决方案?
编辑:
我找到了这一大块代码,但它没有按照海报的意图起作用(对我没有影响):
wBlockObject = get_param(gcb, 'object');
wBlockDialog = DAStudio.Dialog(wBlockObject.getDialogSource);
wBlockDialog.refresh();
应该强制屏蔽刷新。