我在设置Dialog上按钮的启用状态时遇到问题.有问题的按钮定义为:
<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>
Run Code Online (Sandbox Code Playgroud)
Validated属性从初始值0开始,正如预期的那样,下一个按钮开始被禁用.
<Property Id="Validated" Value="0"/>
Run Code Online (Sandbox Code Playgroud)
通过另一个按钮上的自定义操作修改属性本身.
<Control Id="PerformValidation" Type="PushButton" X="225" Y="75" Width="50" Height="20" Text="Validate">
<Publish Event="DoAction" Value="ValidateDB">1</Publish>
</Control>
Run Code Online (Sandbox Code Playgroud)
使用自定义操作的精简版本,如:
[CustomAction]
public static ActionResult ValidateDatabase(Session session)
{
session.Log("Begin ValidateDatabase");
session["Validated"] = "1";
return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,自定义操作运行后,"下一步"按钮不会重新启用.我可以确认CA确实运行,并且该属性已成功设置.如果我执行其他操作以使其刷新,UI将更新,例如,返回页面然后再次转发到此页面,并启用"下一步"按钮.
有关如何在自定义操作后刷新按钮状态的任何想法?