2013-07-19 56 views
0

我很难找到如何在取消选择时更改复选框(=属性)的值。如何更改取消选择的复选框值?

什么I`ve走到这一步:

<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,但它在我的情况下没有效果。

回答

1

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

INSTALLEXCEL2007 <> 1 

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

+0

请问您能更具体吗? 我必须在哪里发布该房产?在'control'标签下? –

+0

试试这个。 http://stackoverflow.com/questions/4241863/wix-interactions-with-conditions-properties-custom-actions – Vinoth

1

经过几个小时试图用复选框完成它,我已切换到组合框。 它使用起来非常简单,虽然它不像使用复选框那样美观。

Here`s我的组合框一个(也许有人会发现它很有用)的例子:

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