У меня есть окно с такими тремя радиокнопками (убрал все неинтересные объекты):
<Control Id="Back" Type="PushButton" Text="!(loc.WixUIBack)">
<Publish Event="NewDialog" Value="InstallDirDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" Text="!(loc.WixUINext)">
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
</Control>
<Control Id="InstallTypeSelection" Type="RadioButtonGroup" Property="INSTALL_TYPE">
<RadioButtonGroup Property="INSTALL_TYPE">
<RadioButton Value="0" Text="InstallType A" />
<RadioButton Value="1" Text="InstallType B" />
<RadioButton Value="2"Text="InstallType C" />
</RadioButtonGroup>
В «следующем» я хочу установить некоторые свойства, основываясь на том, какой тип установки пользователь выбрал.
вот так ..
if(INSTALL_TYPE == 0)
{
REG_VALUE_AUTO_LOGIN = 0;
REG_VALUE_TIMEOUT = 300;
}
if(INSTALL_TYPE == 1)
{
REG_VALUE_AUTO_LOGIN = 1;
REG_VALUE_TIMEOUT = 600;
}
Как это работает в wix?
Неделю назад я столкнулся с чем-то подобным. Я не помню синтаксис правильно, но это выглядит примерно так. На мой вкус, это не очень чисто, но должно работать.
<Control Id="Next" Type="PushButton" Text="!(loc.WixUINext)">
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<!-- INSTALL_TYPE == 0 -->
<Publish Property="REG_VALUE_AUTO_LOGIN" Value="1">INSTALL_TYPE = "0"</Publish>
<Publish Property="REG_VALUE_TIMEOUT" Value="300">INSTALL_TYPE = "0"</Publish>
<!-- INSTALL_TYPE == 1 -->
<Publish Property="REG_VALUE_AUTO_LOGIN" Value="1">INSTALL_TYPE = "1"</Publish>
<Publish Property="REG_VALUE_TIMEOUT" Value="600">INSTALL_TYPE = "1"</Publish>
<! -- FINALLY, CALL NEXT DIALOG : added by Chris Painter -->
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
</Control>
У меня не было времени проверить это, но я думаю, что это самый лучший способ. Я надеюсь, что это поможет вам.
Ура.