我有一個 C# WPF DataGrid 來列出有關文檔(例如發票)的信息。用戶可以在數據網格中選擇一行。雙擊該行后,我需要訪問特定的單元格值(docId)。不幸的是,我不知道如何訪問所選數據網格行后面的正確數據行。我可以從網格中訪問以下值:dataGrid_docs.selectedValue
dataGrid_docs.selectedItem...selected Value 不是我的問題的答案,因為用戶單擊任何行,而不總是正確的列。 // Create a new DataTable. DataTable custTable = new DataTable("Customers"); // Create docId column dtColumn = new DataColumn(); dtColumn.DataType = typeof(string); dtColumn.ColumnName = "docId"; custTable.Columns.Add(dtColumn); // Create createDate column dtColumn = new DataColumn(); dtColumn.DataType = typeof(string); dtColumn.ColumnName = "createDate"; custTable.Columns.Add(dtColumn); dtSet = new DataSet(); dtSet.Tables.Add(custTable); foreach (var doc in docs) { myDataRow = custTable.NewRow(); foreach (var attribute in ecoDmsAttributes) { myDataRow["docId"] = "123" myDataRow["createDate"] = "2019-08-27" } custTable.Rows.Add(myDataRow); } dataGrid_docs.ItemsSource = custTable.DefaultView; private void DataGrid_docs_MouseDoubleClick(object sender, MouseButtonEventArgs e) { DataRowView docid = dataGrid_docs.SelectedItem; txt_Debug.Text = "Clicked on docId: " + docid.ToString(); }
4 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
您可以按列名稱從 DataRowView 檢索值,例如dataRowView["docId"]
private void DataGrid_docs_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DataRowView dataRowView = (DataRowView)dataGrid_docs.SelectedItem;
txt_Debug.Text = "Clicked on docId: " + dataRowView["docId"];
}

jeck貓
TA貢獻1909條經驗 獲得超7個贊
您可以嘗試 DataGridView 的 CellContentClick 事件。在那里,您可以訪問e.RowIndex
并e.ColumnIndex
獲取單擊的單元格的值。您可能必須以某種方式將其與另一種方法結合起來,看看它是否是雙擊。

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
你似乎最能做到這一點:
DataRowView?docid?=?dataGrid_docs.SelectedItem;
ADataRowView
有一個.Row 屬性,它將檢索視圖正在傳遞的基礎數據行:
DataRow?ro?=?(dataGrid_docs.SelectedItem?as?DataRowView)?.Row; var?docid?=?ro["docId"];?//returns?object.?Use?cast?(string)?or?.ToString()
盡管我將您的要求解釋為需要 DataRow 本身,而不是視圖所公開的行中的值,但這與 ash 的答案之間可能沒有什么實際區別

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
調用起來非常簡單:
????????????DataRowView?docid?=?dataGrid_docs.SelectedItem?as?DataRowView; ????????????txt_Debug.Text?=?"Clicked?on:?"?+?docid.Row["DocID"];
- 4 回答
- 0 關注
- 171 瀏覽
添加回答
舉報
0/150
提交
取消