2017-02-21 64 views
2

Я создал ListBox в моем проекте wix, и я хочу заполнить этот ListBox значениями, исходящими из пользовательского действия. Я хочу, чтобы при нажатии кнопки мое настраиваемое действие вызывалось, и в дальнейшем мой ListBox должен быть заполнен. Я не знаю, что происходит. Итак, если кто-нибудь знает, как это сделать, пожалуйста, помогите. Thanx заранее.Заполнение ListBox в установщике wix

код в Мой заказ действий: -

Database db = session.Database; 
string var = db.Tables["ListBox"].SqlInsertString + "TEMPORARY"; 
Microsoft.Deployment.WindowsInstaller.View var2 = db.OpenView(var); 
var2.Execute(new Record(new object[] {"PROPERTY NAME", 5, "5", "value"})); 
var2.Close(); 

Код в Wix проекта: -

<Control Id="ANY ID" Property="PROPERTY NAME" Type="ListBox" X="20" Y="20" Width="300" Height="300" Sorted="yes"> 
<ListBox Property="PROPERTY NAME"> 
    <ListItem Text="[PROPERTY NAME]" Value="[PROPERTY NAME]"/> 
</ListBox> 
</Control> 

код на кнопки для вызова пользовательских действий и освежающее стоимость имущества, которая устанавливается на ListBox: -

<Control Id="ANY ID" Type="PushButton" Text="[Next]" Height="200" Width="200" X="160" Y="160" Bitmap="yes" FixedSize="yes" Default="yes"> 
<Publish Event="DoAction" Value="CustomAction">1</Publish> 
<Publish Property="PROPERTY NAME" Value="[PROPERTY NAME]" Order="2">2</Publish> 
</Control> 

В конце концов, я не могу видеть значение, которое вставляется в таблицу в пользовательском Действие или, другими словами, ListBox не заполняется после выполнения всего этого.

ответ

2

Это не сработает. Мы должны вызвать загрузку Custom Action On следующего диалога. Это работает для меня: -

<InstallUISequence> 
<Custom Action="NAME_OF_CUSTOM_ACTION" Before="DIALOG_NAME_ON_WHICH_YOU_WANT_TO POPULATE_THE_LISTBOX"/> 
<Show Dialog="DIALOG_NAME_ON_WHICH_YOU_WANT_TO POPULATE_THE_LISTBOX" 
After="PREVIOUS_DIALOG_NAME"/> 
</InstallUISequence>