C#-ListBox数据源属性并绑定ArrayList

C#-ListBox数据源属性并绑定ArrayList,c#,listbox,datasource,C#,Listbox,Datasource,我创建了一个包含KeyValuePair对象的ArrayList。有一些列表框我想绑定到该列表,这样我就不必通过迭代来填充它们,同时复制我在上述ArrayList中拥有的所有数据 我是一名Delphi程序员,在Delphi中,我会使用ListView控件,将其OwnerData属性设置为true,然后使用OnData事件使给定项(具有指定索引)显示具有相同索引的数组项中的任何数据段。OnData方法将当前显示的项作为参数提供给我,因此我可以访问它的索引、标题和子项属性等。基于该索引,我可以使该项

我创建了一个包含KeyValuePair对象的ArrayList。有一些列表框我想绑定到该列表,这样我就不必通过迭代来填充它们,同时复制我在上述ArrayList中拥有的所有数据

我是一名Delphi程序员,在Delphi中,我会使用ListView控件,将其OwnerData属性设置为true,然后使用OnData事件使给定项(具有指定索引)显示具有相同索引的数组项中的任何数据段。OnData方法将当前显示的项作为参数提供给我,因此我可以访问它的索引、标题和子项属性等。基于该索引,我可以使该项显示具有相同索引的数组项中的一些数据。如果修改了该数组,只要刷新ListView和/或在数组长度更改时设置其Count属性就足够了


如何使用ListBox控件在C#中实现相同的目标?我将listBox.DataSource属性设置为包含KeyValuePairs的myArrayList。现在我想让列表框显示KeyValuePairs对象的键。

.NET列表框内置了此功能。您已经设置了
DataSource
属性,因此要仅显示列表中的键,请设置:

listBox.DisplayMember = "Key";
杰出的我会添加“listBox.ValueMember=”Value“;“我讨厌没有值的列表!”您也可以这样做——这取决于您希望listBox.SelectedValue为您提供一个KeyValuePair还是一个字符串。