![](/img/trans.png)
[英]If a certain selected cell is in row2, select value of row1 in datagridview
[英]LINQ Select certain cell in DataGridView depending on other cell in row
我是LINQ的新品牌,我正在嘗試在我目前的業余愛好項目中使用它。 我有一個datagridview
,其中每行的第一個單元格是datagridviewcheckbox
,第四個單元格是一個字符串。
如果選中該復選框,我需要將第4個單元格的值添加到列表中。
起初我嘗試過:
var selectedID = from c in multiContactLookup.SelectedCells.Cast<DataGridViewCell>()
select multiContactLookup.Rows[c.RowIndex].Cells[4].Value;
這不起作用,因為檢查的單元格是以編程方式取消選擇的,因此c
絕不是值。
然后我嘗試了:
var sel2 = from r in multiContactLookup.Rows.Cast<DataGridViewRow>()
where r.Cells[0].Value is true select r.Cells[4].Value;
但不知怎的,我的語法錯了。
使用LINQ,如何選擇檢查第一個單元格的行,然后選擇第一個單元格的值? 我是否必須將其拆分為兩個集合?
謝謝!
我認為這應該有效:
IEnumerable<string> values = multiContactLookup.Rows.Cast<DataGridViewRow>()
.Where(row => (bool)row.Cells[0].Value)
.Select(row => (string)row.Cells[3].Value);
也許不是你一直在尋找的答案,但......
DataGridView
(作為大多數win-forms控件)不是從LINQ開始的最佳源代碼。 大多數集合都沒有實現正確的IEnumerable<T>
接口。 這就是你需要Cast()
解決方法的原因。
通常,嘗試將應用程序行為從控件移到數據中。 也許你的網格連接到DataTable
。 在這種情況下,請注冊DataTable
的事件以獲取更改的數據,並使用DataRow
的值,而不是DataGridViewRow
及其單元格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.