连接对象到listViewItem
本文关键字:listViewItem 对象 连接 | 更新日期: 2023-09-27 18:10:01
我有一些对象的概述,显示在一个listView
当一个对象被选中时,我想要显示一个包含关于被选中项目的更多细节的表单。
public lessonForm(lesson foo)
[get and display data]
[…)
lessonListView.ItemActivate += lessonSelected;
void lessonSelected(object sender, eventArgs e)
{
lesson ??? = //REQUESTION MAGIC here.
new lessonForm(???).Show();
}
由于listViewItem实际上只是文本,而不是通过编程连接到用于创建它们的课程对象,因此我还没有找到一种合适的方法来为每个listViewItem找到相应的课程对象。
当然可以
lesson ??? = Program.listOfAllLessons.Find((candidate) => {
return candidate.plainTextName == selectedItem.Text //abbrev. on purpose
});
然而,我认为这是无可争议的,这只是一个可怕的代码,在不止一个层面上。
基本上:
我希望listViewItem有一个
obj underlyingObject;
字段允许方便地访问由listViewItem表示的对象。
是否存在允许这样做的功能?
在创建ListViewItem
时可以使用Tag属性来存储相关对象。由于Tag是object
类型,因此在读取时需要适当地转换它。