2015-11-18 71 views
0

单击按钮我希望从ListView列中获取值。我曾尝试使用DataRow,但我得到NullReferenceExpection从ListView中获取选定的值

int row = listView.SelectedIndex; 
DataRow dr = listView.Items.GetItemAt(row) as DataRow; 
long ID = Convert.ToInt64(dr["ID"]); 
TextBoxID.Text = ID.ToString(); 
+0

尝试'ListViewItem'而不是'DataRow'。 – adv12

回答

0

ListView.GetItemAt()返回一个ListViewItem。如果您尝试通过as将其转换为DataRow,则会得到一个空值,因为这是as在您尝试转换为错误类型时返回的结果。使用ListViewItem已使用DataRow,并使用SubItems列表获取字段值。另请注意,如果指定索引处没有项目,则GetItemAt()将返回空值。

0

我读过上面的答案,但它是不明确的,所以现在我给完整的代码来完成这项工作。

 int index = list_View.SelectedIndex; 
     DataRowView CompRow; 
     long KOT; 
     CompRow = list_View.Items.GetItemAt(index) as DataRowView; 
     KOT = Convert.ToInt16(CompRow["KOT"]); 
     MessageBox.Show(KOT.ToString());