如何使用ListView
的{{1}}事件?我有ItemSelectionChanged
,而后者有8列;并且每行的第一列包含行的Id,这就是我所追求的。
我需要这个,因为Id用于从列表中选择信息。此列表填充ListView
,但不显示所有信息。未显示的信息将显示在ListView
中,当然,它应显示RichTextBox
中所选项目的信息。当然,Id是相同的,但无论我尝试什么,我似乎无法达到这个价值。
到目前为止我的代码:
ListView
这适用于foreach ([ClassName] x in [List])
{
if (x.id == Convert.ToInt32(myListView.FocusedItem.Text))
{
rtbxSpecific.Text = x.name;
}
}
中的第一个对象,但不适用于抛出NullReferenceException
的任何内容。为什么会这样?这就像事件发生一样,但除了第一个项目之外,它不知道列表中的任何其他项目。
我也尝试使用ListView
,selectedItems[0].Text
,但它基本上是同一个错误。这真让我感到烦恼,如果有人可以解释为什么它适用于第一个selectedItems[0].SubItems[0].Text
,而不是以下内容,我会非常感激。
我甚至尝试在列表中使用ListViewItem
:
Find(...)
但没有骰子,这让我相信它现在正在讨厌的[Class] cl = [List].Find(delegate([Class] q) {return q.id == Convert.ToInt32(myListView.FocusedItem.SubItems[0].Text);});
并且我没有得到这个。我想,FocusedItem
方法使用起来会更干净,但是现在我对两者都有同样的错误。
答案 0 :(得分:1)
简单检查所选的item.count是否为> 0
if (myListView.SelectedItems.Count > 0)
{
foreach ([Class] cl in [List])
{
if (myListView.SelectedItems[0].SubItems[0].Text == cl.[Field].ToString())
{
RichTextBox.Text = cl.[Field];
}
}
}