2017-02-21 172 views
2

我在我的wix项目中创建了一个ListBox,我想用来自自定义操作的值填充该ListBox。我想要的是,点击按钮我的自定义动作应该被调用,并进一步我的ListBox应该填充。我不知道什么是错的。所以,如果有人知道如何去做,请帮忙。提前Thanx。在wix安装程序中填充ListBox

代码在我的自定义操作: -

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(); 

代码在维克斯项目: -

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

守则按钮调用自定义操作和财产清爽值是在列表框设置: -

<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

它不会这样工作。 我们必须在加载下一个对话框时调用自定义动作。 这适用于我: -

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