这看起来应该是直观的,但到目前为止,一切都不是。当我的自定义对话框第一次打开时,我如何简单地设置我在product.wxs中定义的属性?
我的属性称为“端口”,它被初始化为空白。我还有一个叫做"df_Port“的名字,我把它设为"8080”。(这些设置在我的Product.wxs中)当我的自定义对话框打开时,我想将“端口”设置为"df_Port“。我在对话框上还有一个编辑控件,它的“属性”设置设置为“端口”。所以很明显,用户应该能够更新端口,但是如果他们按下“后退”按钮,但最终回到这个对话框,编辑控件的默认值应该回到"8080“
我尝试过SetProperty,但它需要一个前后属性,而且我对此一无所知。我也尝试过创建一个CustomAction,但这也不起作用:
<CustomAction Id="caPort" Property="Port" Value="[df_Port]"/>控件显示为空白,而不是"8080“。
我使用的是Wix3.9 R2
发布于 2015-06-09 15:38:49
没有人回答或评论我的问题。然而,经过多次尝试和错误之后,我想出了一个解决方案。我想我应该把它放在这里以防别人有同样的问题。
1)首先,我必须将属性命名为所有大写。所以在我的product.wxs中我声明:
<Property Id="DF_PORT" Value="8080" Secure="yes"/>
<Property Id="PORT" Secure="yes"/>2)然后在自定义配置对话框之前添加一个发布标记并附加到对话框的Next按钮上:
<Publish Dialog="PrecedingDialogName" Control="Next" Property="PORT" Value="[DF_PORT]">1</Publish>3)在我的自定义对话框中,我只是将一个Edit控件绑定到PORT属性:
<Control Id="Port" Type="Edit" X="130" Y="88" Width="60" Height="16" Property="PORT" Text="{\WixUI_Font_Normal}" Integer="yes" RightAligned="yes" />控件将显示默认值。如果我编辑值,然后按“后退”按钮,步骤2将重新加载默认值,而不是记住用户输入的内容。
在使用worst几个星期之后,我可以诚实地说,这是我见过的最糟糕和最不直观的开发片段之一!
https://stackoverflow.com/questions/30668723
复制相似问题