组合框选择属性更改

时间:2012-08-09 12:30:12

标签: wix

我正在为应用程序编写安装程序。作为其中一部分,我需要获取用户选择的国家/地区名称。如果用户选择美国,我希望在我的程序中使用值US,即2个字母代码。

目前我实现了这样的组合框:

<Control Id="CountryList" Type="ComboBox" Sorted="yes" ComboList="yes" Property="COUNTRY" X="30" Y="118" Width="150" Height="15">
  <ComboBox Property="COUNTRY">
     <ListItem Value="United States" />
     <ListItem Value="India" />
     <ListItem Value="Australia" />
     <ListItem Value="United Kingdom" />
  </ComboBox>
</Control>

任何人都可以建议我如何将属性COUNTRY更改为USINUK等。我的意思是2个字母代码。

此外,我还要添加所有可能的国家/地区。有没有更好的方法来实现这个目标?

与此相关,我希望第一个组合框列出所有国家/地区。然后第二个组合框可以显示属于该国家的状态。 :)

1 个答案:

答案 0 :(得分:3)

选择项目时,

Use the Text attribute for a visible text, and Value attribute for the value将被放入ComboBox属性:

<Control Id="CountryList" Type="ComboBox" Sorted="yes" ComboList="yes" Property="COUNTRY" X="30" Y="118" Width="150" Height="15">
  <ComboBox Property="COUNTRY">
    <ListItem Text="United States" Value="US" />
    <ListItem Text="United Kingdom" Value="UK" />
    ...
  </ComboBox>
</Control>

至于你的其他问题:

  

此外,我还要添加所有可能的国家/地区。任何更好的方式   完成这个?

您可以从this thread中获取灵感,并添加构建时步骤以生成<ListItem>元素的XML片段。

  

然后第二个组合框可以显示属于该组合的状态   国家。

请注意,在组合框中更改选定项目时无法捕获事件。这是MSI UI的一个众所周知的限制。您可以尝试使用我称之为“双对话框”的解决方法来实现您的目标。有关详细信息,请参阅this thread