WIX UI - 创建"密码不匹配"标签

Jus*_*tin 0 wix conditional-statements

我需要我的安装程序接受密码,所以我创建了一个对话框,提示用户输入两次密码(以避免错误),但是我遇到了一些问题,但是我的"你的密码不匹配"标签在正确的时间出现和消失.

这是我到目前为止:

<Control Id="Password" Type="Edit" Property="VDIR_PASSWORD" Password="yes" />
<Control Id="ConfirmPassword" Type="Edit" Property="ConfirmPassword" Password="yes" />
<Control Id="PasswordMismatchLabel" Type="Text" Text="Passwords do not match.">
  <Condition Action="hide">VDIR_PASSWORD = ConfirmPassword</Condition>
</Control>
Run Code Online (Sandbox Code Playgroud)

这会编译,但标签永远不会显示.(如果我反转条件然后标签显示,但如果它们不匹配则不会消失).

我可以看到,我缺少的是订阅某些事件,只要发生某些事情就会更新标签(例如,用户按下某个键,或者从任一控件中丢失焦点),但是我无法找到任何文档或我如何实现这一目标的例子.

是否有可能做到这一点?

Dan*_*ell 5

这是Yan建议的一个例子:

<Control Id="Next" Type="PushButton" X="238" Y="243" Width="56" Height="17" Text="Next">
  <Publish Event="NewDialog" Value="VirtualDirectoryDlg">1</Publish>
  <Condition Action="disable">
    <![CDATA[(ACCOUNT_TYPE = "Service" AND WEB_APP_POOL_SERVICE_NAME = "") OR 
                             (ACCOUNT_TYPE = "User" AND 
                                                      ((WEB_APP_POOL_IDENTITY_DOMAIN = "" OR 
                                                       WEB_APP_POOL_IDENTITY_NAME = ""   OR 
                                                       WEB_APP_POOL_IDENTITY_PWD = ""    OR 
                                                       WEB_APP_POOL_IDENTITY_PWD_CONFIRM = "") OR (WEB_APP_POOL_IDENTITY_PWD <> WEB_APP_POOL_IDENTITY_PWD_CONFIRM))) ]]>
  </Condition>
  <Condition Action="enable">
    <![CDATA[(ACCOUNT_TYPE = "Service" AND WEB_APP_POOL_SERVICE_NAME <> "") OR 
                             (ACCOUNT_TYPE = "User" AND 
                                                      ((WEB_APP_POOL_IDENTITY_DOMAIN <> "" AND 
                                                       WEB_APP_POOL_IDENTITY_NAME <> ""   AND 
                                                       WEB_APP_POOL_IDENTITY_PWD <> ""    AND
                                                       WEB_APP_POOL_IDENTITY_PWD_CONFIRM <> "") AND (WEB_APP_POOL_IDENTITY_PWD = WEB_APP_POOL_IDENTITY_PWD_CONFIRM))) ]]>
  </Condition>
</Control>
Run Code Online (Sandbox Code Playgroud)