Domanda

Ho creato un ArrayList che contiene KeyValuePair < string, string > oggetti. Ci sono ListBox che vorrei associare a tale elenco in modo da non doverli riempire per iterazione, copiando allo stesso tempo tutti i dati che ho nella suddetta ArrayList.

Sono un programmatore di Delphi e in Delphi userei il controllo ListView, imposterò la sua proprietà OwnerData su true e poi userei l'evento OnData per fare in modo che un dato elemento (con un indice specificato) visualizzi qualsiasi pezzo di dati da un elemento dell'array avere lo stesso indice. Il metodo OnData mi fornisce l'elemento attualmente visualizzato come parametro, quindi ho accesso ad es. le sue proprietà Index, Caption e SubItems. Basandomi su quell'indice, posso fare in modo che l'elemento mostri alcuni dati di un oggetto array con lo stesso indice. Se l'array viene modificato, è sufficiente aggiornare ListView e / o impostare la proprietà Count se la lunghezza dell'array viene modificata.

Come raggiungere lo stesso obiettivo in C # usando il controllo ListBox? Ho impostato la proprietà listBox.DataSource su myArrayList contenente KeyValuePairs. Ora vorrei che listBox mostrasse le chiavi degli oggetti KeyValuePairs.

È stato utile?

Soluzione

Le caselle di elenco .NET hanno questa funzionalità integrata. Hai già impostato la proprietà DataSource, quindi per visualizzare solo le chiavi nell'elenco, imposta:

listBox.DisplayMember = "Key";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top