A ListView
不能像直接添加或插入对象ListBox
or ComboBox
,但您需要创建一个ListViewItem
并设置其Tag
财产。
来自 MSDN 的 Tag 属性
包含有关控件的数据的对象。默认值为空。
任何从 Object 类派生的类型都可以分配给该类型
财产。如果通过 Windows 窗体设置 Tag 属性
设计师,只能分配文本。标签的常见用途
属性是存储与控件密切相关的数据。
例如,如果您有一个显示有关
客户,您可以存储包含客户订单的数据集
该控件的 Tag 属性中的历史记录,以便可以访问数据
迅速地。
示例代码:
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);
当你需要从ListView
,您可以投射Tag
财产。
private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
MyObject myObj = (MyObject)e.Item.Tag;
int id = myObj.Id;
// Can access other MyObject Members
}
通常将功能包装到辅助方法中更容易。
public static void CreateListViewItem(ListView listView, MyObject obj) {
ListViewItem item = new ListViewItem();
item.Tag = obj;
// Other requirements as needed
listView.Items.Add(item);
}
你可以这样做:
CreateListViewItem(listView, obj);
A ListView
不支持DataSource
属性就像很多控件一样,所以如果您希望数据绑定,您将需要实现一些更自定义的东西。