简体   繁体   中英

C# - ListBox DataSource property and binding an ArrayList

I created an ArrayList which contains KeyValuePair<string, string> objects. There are ListBoxes which I would like to bind to that list so that I do not have to fill them by iteration, copying at the same time all the data I have in the above mentioned ArrayList.

I am a Delphi programmer and in Delphi I would use the ListView control, set its OwnerData property to true and then use the OnData event to make a given item (with a specified index) display any piece of data from an array item having the same index. The OnData method gives me the currently displayed item as a parameter so I have access to eg its Index, Caption and SubItems properties. Basing on that index I can make the item display some data from an array item having the same index. If that array is modified, it is enough to refresh the ListView and/or set its Count property if the length of the array changed.

How to achieve the same goal in C# using the ListBox control? I set the listBox.DataSource property to myArrayList containing KeyValuePairs. Now I would like the listBox to display the keys of the KeyValuePairs objects.

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

listBox.DisplayMember = "Key";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM