亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊數據網格行后如何獲取單元格值

單擊數據網格行后如何獲取單元格值

C#
動漫人物 2023-09-24 16:09:22
我有一個 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"];

}



查看完整回答
反對 回復 2023-09-24
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

您可以嘗試 DataGridView 的 CellContentClick 事件。在那里,您可以訪問e.RowIndexe.ColumnIndex獲取單擊的單元格的值。您可能必須以某種方式將其與另一種方法結合起來,看看它是否是雙擊。



查看完整回答
反對 回復 2023-09-24
?
蕪湖不蕪

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 的答案之間可能沒有什么實際區別



查看完整回答
反對 回復 2023-09-24
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

調用起來非常簡單:

????????????DataRowView?docid?=?dataGrid_docs.SelectedItem?as?DataRowView;

????????????txt_Debug.Text?=?"Clicked?on:?"?+?docid.Row["DocID"];


查看完整回答
反對 回復 2023-09-24
  • 4 回答
  • 0 關注
  • 171 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號