【问题标题】:ComboBox value rather than text is displayed when an option is selected选择选项时显示 ComboBox 值而不是文本
【发布时间】:2015-12-14 13:19:02
【问题描述】:

我有一个自定义 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 时,我可以在下拉列表中看到正确的文本,例如“选项 2”,但是当我选择该项目并且下拉列表折叠并将所选选项放在可见字段中时,我看到显示“Option_2”,即显示的文本来自值属性,而不是文本属性。下面的屏幕截图应该可以澄清我在说什么。

很明显,我在控件设置中遗漏了一些东西,ComboBox 是不是适合这项工作的工具,还是控件或 ComboBox 上有我应该设置的属性?
我查看了 Wix 文档,但没有任何内容。

【问题讨论】:

    标签: wix


    【解决方案1】:

    我找到了解决方案。
    回到Wix documentation for the Control element,我遇到了一个名为ComboList 的属性,它没有描述。所以我想我会试一试,看看发生了什么。

    这是我得到的:

    与原作对比:

    因此,它已将下拉菜单从您可以输入的下拉菜单更改为常规下拉菜单。
    有了它,它也给了我我需要的东西 - 现在当我选择 "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" 属性,因为它会对下拉列表中的元素进行排序为了我将它们添加到列表中。如果你把它排除在外,它会按字母顺序对项目进行排序。

    【讨论】:

      【解决方案2】:

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

      “要分配给项目的可本地化的可见文本。如果未指定,这将默认为 Value 属性的值。”

      我建议只使用 value 属性并删除 text 属性。

      【讨论】:

      • 尽管如此,但这并不能解决我的问题。我的值是从文件名生成的,在其中放入空格会让人头疼。此外,我应该能够使用本地化文本并让它看起来像我想要的那样,因为这肯定是 text 属性的重点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多