0

我正在开发一个 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();
4

1 回答 1

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 方法,以便它只是添加新的而不是清除它并重新填充 - 我只是不知道您的其余代码的结构。

于 2012-07-25T17:11:05.403 回答