A ListView
können nicht hinzufügen oder ein Objekt einfügen wie direkt einem ListBox
oder ComboBox
, sondern benötigen Sie einen ListViewItem
erstellen und seine Tag
Eigenschaft.
Die Tag-Eigenschaft von Msdn
Ein Objekt, das Daten über das Steuerelement enthält. Der Standardwert ist null.
Jeder Typ, der von der Object-Klasse abgeleitet wird, kann dieser -Eigenschaft zugewiesen werden. Wenn die Tag-Eigenschaft über den Windows Forms-Designer festgelegt wird, kann nur Text zugewiesen werden. Eine häufige Verwendung der Eigenschaft Tag besteht darin, Daten zu speichern, die eng mit dem Steuerelement verknüpft sind. Wenn Sie beispielsweise über ein Steuerelement verfügen, das Informationen zu einem Kunden anzeigt, speichern Sie möglicherweise ein DataSet mit der Historie des Kunden in der Tag-Eigenschaft dieses Steuerelements, sodass auf die Daten schnell zugegriffen werden kann.
Beispielcode:
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);
Wenn Sie Ihr Objekt aus dem ListView
zurück zu bekommen, dann können Sie die Tag
Eigenschaft werfen.
private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
MyObject myObj = (MyObject)e.Item.Tag;
int id = myObj.Id;
// Can access other MyObject Members
}
Normalerweise ist es einfacher, die Funktionalität in eine Hilfsmethode zu verpacken.
public static void CreateListViewItem(ListView listView, MyObject obj) {
ListViewItem item = new ListViewItem();
item.Tag = obj;
// Other requirements as needed
listView.Items.Add(item);
}
Und Sie tun können:
CreateListViewItem(listView, obj);
A ListView
unterstützt keine DataSource
Eigenschaft wie viele Kontrollen, so dass, wenn Sie wünschen, dass Daten binden Sie etwas ein bisschen mehr brauchen zu implementieren Brauch.
Wenn Sie es nicht tun können, dann können Sie es nicht tun. Vielleicht gibt es eine Workaround - was ist dein Ziel hier? – McGarnagle
Bitte fügen Sie Ihren Fragen nicht "C#" und dergleichen voran. Dafür sind die Tags da. –