2015-06-05 85 views
3

這似乎應該是直觀的,但到目前爲止它只是一件事。我的自定義對話框第一次打開時,如何簡單地設置我在product.wxs中定義的屬性?WIX工具集如何設置屬性

我的屬性被稱爲「端口」,它被初始化爲空白。我有另一個名爲「df_Port」,我設置爲「8080」。 (這些設置在我的Product.wxs中)當我的Custom Dialog打開時,我想將「Port」設置爲「df_Port」。我還在「屬性」設置設置爲「端口」的對話框上有一個編輯控件。所以顯然用戶應該能夠更新端口,但是如果他們點擊「後退」按鈕,但最終會回到該對話框,編輯控制的默認值應該回到「8080」

我試過SetProperty,但它需要一個Before或After屬性,我對此沒有任何線索。我也試圖創建一個CustomAction,但這並沒有工作之一:

<CustomAction Id="caPort" Property="Port" Value="[df_Port]"/> 

控制顯示,而不是「8080」

我使用維克斯3.9 R2

回答

6

無人爲空白,回答或評論我的問題。但是,經過多次試驗和錯誤,我找到了一個解決方案。我想我會把它放在這裏以防其他人有同樣的問題。

1)首先,我必須將屬性命名爲全部大寫。所以在我的product.wxs我宣佈:

<Property Id="DF_PORT" Value="8080" Secure="yes"/> 
<Property Id="PORT" Secure="yes"/> 

2)我再添加一個標籤發佈,重視對話的下一步按鈕我的自定義配置對話框前:

<Publish Dialog="PrecedingDialogName" Control="Next" Property="PORT" Value="[DF_PORT]">1</Publish> 

3)在我的自定義對話框,我只是一個Edit控件綁定到端口屬性:

<Control Id="Port" Type="Edit" X="130" Y="88" Width="60" Height="16" Property="PORT" Text="{\WixUI_Font_Normal}" Integer="yes" RightAligned="yes" /> 

控件將顯示的默認值。如果我編輯的值,但隨後點擊「返回」按鈕,步驟2將重新加載,而不是記住哪些用戶已鍵入的默認值。

與維克斯工具箱工作了幾個星期,現在,我可以誠實地說,這是我所見過的最糟糕的,最直觀的開發作品之一!

+0

感謝您發佈答案,這是一個很好的幫助 –