Как использовать элемент управления RadioButtonGroup с косвенным свойством?

Я работаю над установщиком, используя набор инструментов WIX, у которого есть диалог, который принимает несколько входных данных от пользователя и передает их в родительский диалог. Для POC я сделал это для Edit Control, и это сработало отлично. Но когда я попытался сделать то же самое, используя RadioButtonGroup, он не работает с

Unresolved reference to symbol 'Property:_TestRb' in section 'Fragment:'.(LGHT0094)

ниже мой родительский диалог

<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <UI>
            <DialogRef Id="spandlg"></DialogRef>
            <Property Id="TestProp" Value="Test"></Property>
            <Property Id="TestRadio" Value="1"></Property>
            <Dialog Id="parent_dlg" Width="370" Height="270" Title="parent.dlg">
                <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
                    <Publish Property="_TestRb" Value="TestRadio" Order="2">1</Publish>
                    <Publish Property="_TestP" Value="TestProp" Order="1">1</Publish>
                    <Publish Event="SpawnDialog" Value="spandlg" Order="3">1</Publish>
                </Control>
                <Control Id="txtBox" Type="Edit" Height="15" Width="321" X="10" Y="16" Property="TestRadio"></Control>
                <Control Id="txtBox1" Type="Edit" Height="15" Width="321" X="10" Y="50" Property="TestProp"></Control>
                <Control Id="c" Type="PushButton" X="300" Y="243" Width="56" Height="17" Default="yes" Text="Cancel">
                    <Publish Event="EndDialog" Value="Exit" Order="2">1</Publish>
                </Control>
            </Dialog>
        </UI>
    </Fragment>
</Wix>

и это диалог, который нужно открыть как Spawn

<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <UI>
            <Dialog Id="spandlg" Width="370" Height="270" Title="spandlg">
                <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[Button_Next]">                 
                    <Publish Event="EndDialog" Value="Return"></Publish>
                </Control>
                <Control Id="textBox1" Type="Edit" Height="15" Width="176" X="9" Y="9" Property="_TestP" Indirect="yes" />
                <Control Id="radioButtonGroupBox1" Type="RadioButtonGroup" Height="75" Width="150" X="10" Y="36" 
                         Property="_TestRb" Indirect="yes"  >
                    <RadioButtonGroup Property="_TestRb">
                        <RadioButton X="3" Y="26" Height="18" Width="78" Text="radioButton2" Value="0" />
                        <RadioButton X="3" Y="3" Height="18" Width="78" Text="radioButton1" Value="1" />
                    </RadioButtonGroup>
                </Control>
            </Dialog>
        </UI>
    </Fragment>
</Wix>

Я не могу понять, что не так с кодом.


person goyaltushar92    schedule 12.04.2017    source источник


Ответы (2)


Вы должны где-то определить свойство. Что-то типа

<Property Id="_TestRb" />

Может быть, вы поменяли местами атрибуты Property и Value?

person dvorn    schedule 12.04.2017
comment
Я Пробовал, не помогает. свойство _TestP тоже не определено аналогично _TestRb но с этим проблем нет. - person goyaltushar92; 13.04.2017
comment
Привет @dvorn, Ниже приведена ошибка, которую я получаю после определения _TestRb <Property Id="_TestRb" Value="TestRadio"></Property> ICE34: 1 не является допустимым значением по умолчанию для свойства TestRadio. Свойство является косвенным свойством RadioButtonGroup элемента управления spandlg.radioButtonGroupBox1 (через свойство _TestRb). (LGHT0204) - parent.dlg.wxs - person goyaltushar92; 13.04.2017

Я смог решить проблему после удаления,

<Control Id="txtBox" Type="Edit" Height="15" Width="321" X="10" Y="16" Property="TestRadio"></Control>

из диалогового окна parent_dlg.

Похоже, что Edit Control может изменить значение свойства TestRadio, отличное от 0 и 1, которые недействительны в соответствии с ICE34. Но сообщение об ошибке Unresolved reference to symbol 'Property:_TestRb' in section 'Fragment:' совсем не помогло.

После определения свойства _TestRb отображалась фактическая ошибка ICE34: 1 is not a valid default value for the property TestRadio. The property is an indirect RadioButtonGroup property of control spandlg.radioButtonGroupBox1 (via property _TestRb). (LGHT0204).

person goyaltushar92    schedule 13.04.2017