Un ListView
non possono aggiungere o inserire un oggetto direttamente come un ListBox
o ComboBox
, ma invece è necessario creare un ListViewItem
e impostarne la proprietà Tag
.
La proprietà Tag da MSDN
Un oggetto che contiene i dati relativi al controllo. Il valore predefinito è null.
Qualsiasi tipo derivato dalla classe Object può essere assegnato a questa proprietà . Se la proprietà Tag è impostata tramite il designer di Windows Form , è possibile assegnare solo il testo. Un uso comune per la proprietà Tag consiste nel memorizzare dati strettamente associati al controllo. Ad esempio, se si dispone di un controllo che visualizza le informazioni su un cliente , è possibile archiviare un DataSet che contiene la cronologia dell'ordine del cliente nella proprietà Tag di quel controllo in modo che sia possibile accedere rapidamente ai dati .
codice Esempio:
MyObject myObj = new MyObject();
ListViewItem item = new ListViewItem();
item.Text = myObj.ToString(); // Or whatever display text you need
item.Tag = myObj;
// Setup other things like SubItems, Font, ...
listView.Items.Add(item);
Quando è necessario per ottenere il vostro oggetto di ritorno dal ListView
, si può lanciare la proprietà Tag
.
private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
MyObject myObj = (MyObject)e.Item.Tag;
int id = myObj.Id;
// Can access other MyObject Members
}
Di solito è più semplice avvolgere la funzionalità in un metodo di supporto.
public static void CreateListViewItem(ListView listView, MyObject obj) {
ListViewItem item = new ListViewItem();
item.Tag = obj;
// Other requirements as needed
listView.Items.Add(item);
}
E si può fare:
CreateListViewItem(listView, obj);
Un ListView
non supporta una proprietà DataSource
come un sacco di controlli, quindi se si desidera i dati legano dovrai implementare qualcosa di un po 'più personalizzato.
fonte
2012-05-07 05:25:00
Se non riesci a farlo, non puoi farlo. Forse c'è una soluzione: qual è il tuo obiettivo qui? – McGarnagle
Si prega di non anteporre le vostre domande a "C#" e così via. Ecco a cosa servono i tag. –