在Combox中更改值时调用WIX中的自定义操作

Sun*_*wal 5 installer combobox wix wix3.5

我在WIX安装程序中遇到了组合框和自定义操作.

我有一个包含很少值的组合框(下拉列表).当用户从此下拉列表中选择一个值时,我想在屏幕上显示一些文本(下拉列表中的每个项目都是唯一的).

在.Net中,我们可以轻松地完成这项工作,因为我们预先定义了不同的事件.但在WIX中我没有看到任何此类事件.

有人遇到同样的问题吗?或者可以指导我如何完成它.

Yan*_*nko 8

Windows Installer(基础技术)不允许您这样做.从字面上看,当组合框(下拉列表)值发生变化时,它不会发布任何事件.例如,您必须添加一个按钮,以便用户在更改组合框中的值时单击...

或者,您可以切换到EmbeddedUI技术(WiX元素MSI表),但它更先进......

更新:使用按钮单击以更新文本的示例.

<UI>
  ...
  <ComboBox Property="WIX_VERSIONS">
    <ListItem Value="Windows Installer XML 3.0" />
    <ListItem Value="Windows Installer XML 3.5" />
    <ListItem Value="Windows Installer XML 3.6" />
  </ComboBox>
  ...
  <Dialog Id="MyCustomDlg">
    ...
      <Control Id="ComboBoxMain" Type="ComboBox" X="10" Y="60" Width="300" Height="17" Property="WIX_VERSIONS" />
      <Control Id="ButtonMain" Type="PushButton" X="320" Y="60" Width="40" Height="17" Text="Show">
        <Publish Property="COMBOVALUEFORMATTED" Value="You've chosen the [WIX_VERSIONS] version of the toolset" />
      </Control>
      <Control Id="LabelMain" Type="Text" X="10" Y="80" Width="360" Height="17" Property="COMBOVALUEFORMATTED" Text="[COMBOVALUEFORMATTED]" />
    ...
  </Dialog>
</UI>
Run Code Online (Sandbox Code Playgroud)

PushButton可以发布更多事件,例如DoAction,用于在按钮点击时运行自定义操作.在您的情况下,这可能更相关.