BindingList到ArrayList会产生运行时错误

时间:2012-09-14 02:13:27

标签: c# vb.net arraylist bindinglist

我正在尝试使用ArrayList,并将其绑定到BindingList ...

如果我尝试将其放入(我有Option Strict On),我会得到一个关于我实施的投射的建议 -

然而,无论我尝试什么,我都会遇到运行时错误。

Unable to cast object of type 'ArrayList' to type 'IList`

代码:

Dim myBoundList As System.ComponentModel.BindingList(Of something) =
    New System.ComponentModel.BindingList(Of something)
      (CType(myArrayList, System.Collections.Generic.IList(Of something)))

我试图插入.ToArray ......

链接https://stackoverflow.com/a/8770832/1217150上接受的答案完全相同(即使意图相反),我已经尝试过了......(我的意思是,创建一个IList项目,然后分配

IList iList = new ArrayList();

它给了我同样的错误......

我正在使用VB.NET,但c#也会有所帮助。请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

您应该使用通用List类(.NET类型)而不是使用非通用ArrayList来检出。我怀疑这可能与你的问题有关。它可能会尝试将非通用ArrayList转换为IList<T>(IList的通用版本)。

答案 1 :(得分:0)

如果您尝试将数组列表作为项添加到列表框中,则可以使用以下代码:

private void Form1_Load(object sender, EventArgs e)
{
    // Create a new array list.
    ArrayList list = new ArrayList();

    // Add items to the array list
    list.Add("MyItem1");
    list.Add("MyItem2");
    list.Add("MyItem3");

    //Set the data source of the listbox as the array list
    listBox1.DataSource = list;
}