选择选项时显示 ComboBox 值而不是文本

ComboBox value rather than text is displayed when an option is selected

我有一个自定义 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 时,我可以在下拉列表中看到正确的文本,例如"Option 2",但是当我 select 该项目和下拉列表折叠并且 selected 选项被放入可见字段时,我看到 "Option_2" 显示,即文本显示的是来自 Value 属性,而不是 Text 属性。下面的截图应该清楚我在说什么。

很明显,我在控件设置中遗漏了一些东西,ComboBox 是否是这项工作的错误工具,或者我应该设置的 Control 或 ComboBox 上是否有 属性?
我查看了 Wix 文档,但没有什么让我兴奋的。

你可以在这里看到 http://wixtoolset.org/documentation/manual/v3/xsd/wix/listitem.html text 属性用于本地化目的,如果不使用,它将是 value 属性的值。

"The localizable, visible text to be assigned to the item. If not specified, this will default to the value of the Value attribute."

我建议只使用值属性并删除文本属性。

我找到了解决办法。
回到 Wix documentation for the Control element,我遇到了一个名为 ComboList 的属性,但没有对其进行描述。所以我想我会试一试,看看会发生什么。

这是我得到的:

与原来相比:

所以它将下拉列表从您可以输入的下拉列表更改为常规下拉列表。
而且它也给了我我需要的东西 - 现在当我 select "Option 2", 我得到 "Option 2".
它仍然可以很好地从注册表中检索 SELECTEDOPTION 设置的先前值,因为当然列表中每个项目的值都没有改变。

我所做的只是将 ComboList="yes" 属性添加到 Control 元素,它给了我:

<Control Type="ComboBox" Id="OptionType" Width="150" Height="13" X="41" Y="68" Property="SELECTEDOPTION" ComboList="yes" Sorted="yes">

与原始问题无关,但可能对最终查看此问题的任何人有用 - 我还添加了 Sorted="yes" 属性,因为它随后进行了排序下拉列表元素按照我将它们添加到列表的顺序排列。如果您将其省略,则会按字母顺序对项目进行排序。