我在设置对话框上按钮的启用状态时遇到问题。有问题的按钮定义为:
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Condition Action="disable">Validated = 0</Condition>
<Condition Action="enable"><![CDATA[Validated <> 0]]></Condition>
<Publish Event="EndDialog" Value="Return">1</Publish>
</Control>
Validated 属性从初始值 0 开始,并且正如预期的那样,下一个按钮开始时是禁用的。
<Property Id="Validated" Value="0"/>
属性本身是通过另一个按钮上的自定义操作来修改的。
<Control Id="PerformValidation" Type="PushButton" X="225" Y="75" Width="50" Height="20" Text="Validate">
<Publish Event="DoAction" Value="ValidateDB">1</Publish>
</Control>
使用精简版的自定义操作,例如:
[CustomAction]
public static ActionResult ValidateDatabase(Session session)
{
session.Log("Begin ValidateDatabase");
session["Validated"] = "1";
return ActionResult.Success;
}
我面临的问题是,在自定义操作运行后,下一步按钮不会重新启用。我可以确认 CA 确实运行,并且该属性已成功设置。如果我执行其他一些导致它刷新的操作,UI 将更新,例如返回一个页面然后再次转发到该页面,并且将启用下一步按钮。
关于如何在自定义操作后刷新按钮状态的任何想法?