我有一个自定义的Wix对话框,在该对话框上是一个ComboBox控件 用于创建对话框的ComboBox设置如下:
<Control Type="ComboBox" Id="OptionType" Width="150" Height="13" X="41" Y="68" Property="SELECTEDOPTION">
<ComboBox Property="SELECTEDOPTION">
<ListItem Text="None" Value="None" />
<ListItem Text="Option 1" Value="Option_1"/>
<ListItem Text="Option 2" Value="Option_2"/>
<ListItem Text="Option 3" Value="Option_3"/>
</ComboBox>
</Control>
在安装过程中显示ComboBox时,我可以在下拉列表中看到正确的文本,例如&#34;选项2&#34;,但是当我选择该项目并且下拉列表折叠并且所选选项放在可见字段中时,我看到&#34; Option_2&#34;显示,即显示的文本是Value属性,而不是Text属性。下面的截图应该澄清我在谈论的内容。
显然,我在控制设置中遗漏了一些东西,ComboBox是这个作业的错误工具,还是我应该设置Control或ComboBox上的属性?
我查看了Wix文档,但没有任何内容向我发出。
答案 0 :(得分:5)
我找到了解决方案 回到Wix documentation for the Control element,我遇到了一个名为 ComboList 的属性,但没有描述。所以我想我试一试看看发生了什么。
这就是我得到的:
与原版相比:
因此,它将您可以输入的下拉菜单更改为常规下拉菜单
而且,它也给了我我需要的东西 - 现在当我选择&#34;选项2&#34; 时,我得到&#34;选项2&#34; 。
从注册表中检索 SELECTEDOPTION 设置的先前值仍然可以正常工作,因为列表中每个项目的值当然没有改变。
我所做的只是将 ComboList =&#34; yes&#34; 属性添加到Control元素中,它给了我:
<Control Type="ComboBox" Id="OptionType" Width="150" Height="13" X="41" Y="68" Property="SELECTEDOPTION" ComboList="yes" Sorted="yes">
与原始问题无关,但可能对最终看到此内容的任何人都有用 - 我还添加了 Sorted =&#34; yes&#34; 属性,因为这样就可以对丢弃进行排序按顺序列出元素我将它们添加到列表中。如果你把它留下来,它会按字母顺序对这些项目进行排序。
答案 1 :(得分:-1)
您可以在此处http://wixtoolset.org/documentation/manual/v3/xsd/wix/listitem.html看到text属性用于本地化目的,如果不使用,则它将是value属性的值。
&#34;要分配给项目的可本地化的可见文本。如果未指定,则默认为Value属性的值。&#34;
我建议只使用value属性并删除text属性。