如何在取消选择时更改复选框值?

时间:2013-07-19 10:11:57

标签: wix wix3.6

在取消选择时,我无法找到如何更改复选框(=属性)的值。

我到目前为止:

<Property Id="INSTALLEXCEL2007" />

<Control Type="CheckBox" Id="Excel2007_Checkbox" Width="88" Height="17" X="22" Y="120" Text="Excel 2007" Property="INSTALLEXCEL2007" CheckBoxValue="1" />

代码表示如果用户检查,属性INSTALLEXCEL2007将获得值1。 现在,如果未选中,则值仍为1。这意味着,每次单击复选框都会将值1分配给此属性。

有没有办法获得“未经检查的价值”?

我已经尝试了this,但在我的情况下它没有用。

2 个答案:

答案 0 :(得分:1)

如果用户取消选中“复选框”,则该属性将被删除或其值变为null。您可以使用如下所示的取消选中条件。

INSTALLEXCEL2007 <> 1

如果使用文本控件在对话框中测试Checkbox属性值(选中并取消选中),则不会更新。您需要发布该属性,或者如果单击下一个或后退按钮,它将被更新。

答案 1 :(得分:1)

在尝试使用复选框完成任务后,我已切换到组合框。 使用它们真的很容易,虽然它不像复选框那样漂亮。

这是我的一个组合框的例子(也许有人可能觉得它很有用):

<Control Type="ComboBox" Id="Excel2007_Combobox" Width="75" Height="14" X="165" Y="114" ComboList="yes" Property="INSTALLEXCEL2007">
     <ComboBox Property="INSTALLEXCEL2007">
           <ListItem Text="No" Value="0" />
           <ListItem Text="Yes" Value="1" />
     </ComboBox>
</Control>

选择一个值后,很容易使用“INSTALLEXCEL2007”属性的值作为条件:

<Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Accept" Event="SpawnDialog" Value="WarningDlg_NoOfficeVersion" Order="1"><![CDATA[INSTALLEXCEL2007<>"1"]]></Publish>