我正在开发一个SSIS控制流程任务。在我的UI上,我有一个组合框,它显示了一个可用的用户变量列表以及添加新变量的能力。我能够成功添加变量,但即使重新填充数据源,我也无法在组合框中看到它。在SelectionChangeCommitted事件中,我保存组合框选择。如果用户选择添加新的SSIS用户变量,则会在此方法中提示他们。变量被保存,然后我重新填充组合框的数据源。虽然我的新变量没有显示在下拉列表中。我是否应该在另一个事件上重新组合组合框?
我在下面使用的代码示例。
private List<string> FillVariablesList()
{
List<string> Variables = new List<string>();
Variables.Add("");
Variables.Add(New_Variable);
foreach (Variable v in this.theTaskHost.Variables)
{
if (!v.SystemVariable && v.DataType == TypeCode.String)
Variables.Add(v.Name);
}
return Variables;
}
combobox.datasource = FillVariablesList();
答案 0 :(得分:1)
尝试使用像这样的共享ObservableCollection。
...
class A
{
private ObservableCollection<string> variables = new ObservableCollection<string>();
...
private void FillVariablesList()
{
variables.Clear();
variables.Add("");
variables.Add(New_Variable);
foreach (Variable v in this.theTaskHost.Variables)
{
if (!v.SystemVariable && v.DataType == TypeCode.String)
variables.Add(v.Name);
}
this.comboBox.DataSource = null;
this.comboBox.DataSource = variables;
}
}
你甚至可以设置FillVariables方法,这样它就可以添加新方法而不是清除它并重新填充 - 我只是不知道你的代码的其余部分是如何构建的。