2015-12-14 194 views
2

我有一個自定義的Wix對話框,並且在該對話框上是一個組合框控件。
組合框設置用來創建對話框如下:當選擇一個選項時,顯示組合框的值而不是文本

<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> 

當在顯示組合框的安裝,我可以看到在下拉列表中,例如正確的文本「選項2」,但是當我選擇該項目並且下拉菜單崩潰並且所選選項放在可見字段中時,我看到「選項2」顯示,即顯示的文本是來自Value屬性,而不是Text屬性。下面的截圖應該說明我在說什麼。

How the drop down looks before and after selection.

顯然我錯過了我的控制設置的東西,是組合框這份工作錯誤的工具,或者是有上控制或ComboBox,我應該設置屬性?
我已經看過Wix的文檔,但沒有什麼是跳出來對我。

回答

3

我找到了解決方案。
回到Wix documentation for the Control element,我遇到了一個名爲組合列表沒有說明。所以我想我會試一試,看看發生了什麼。

這是我得到:

Drop down rendering with ComboList set to yes

與原來相比:

Drop down rendering with no ComboList setting

所以它改變了下降,由一跌,你可以輸入,到正規的一個。
並與此同時,它也給了我什麼我需要 - 現在當我選擇「選項2」,我得到「選項2」
它仍然正常工作,檢索SELECTEDOPTION設置從註冊表以及以前的值,因爲當然,列表中的每個項目的值沒有改變。

我所做的只是屬性添加ComboList =「是」到給我的控制元素:

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

無關原來的問題,但任何人誰最終看着這可能是有用的 - 我還添加了Sorted =「是」屬性,因爲那樣會按照我將它們添加到列表中的順序對下拉列表元素進行排序。如果將它排除在外,則按字母順序排列項目。

0

你可以在這裏看到http://wixtoolset.org/documentation/manual/v3/xsd/wix/listitem.html text屬性是爲了本地化的目的,如果不使用它將是value屬性的值。 「

」要分配給該項目的可本地化的可見文本,如果未指定,則默認爲值屬性的值。

我建議只使用value屬性並刪除文本屬性。

+0

就是這樣,但這並不能解決我的問題。我的值是從文件名生成的,並將空格放入它們會導致頭痛。此外,我應該能夠使用本地化的文本,並讓它看起來像我想要的樣子,因爲這肯定是text屬性的全部要點。 – Nanhydrin

相關問題