2011-02-23 48 views
0

我有一個DataGridView綁定到一個對象數組。獲取與DataGridView中選定行關聯的對象

List<Node> nodes = GetNodeList(); 

m_grid.DataSource = nodes; 

然後我處理SelectionChanged事件。

在SelectionChanged事件的處理程序中,我想訪問選定的對象。

我似乎能夠做的就是訪問網格中每個單元格的值,而不是與該行相關的整個對象。

void OnSelectionChanged(object sender, EventArgs e) 
{ 
    foreach (DataViewGridRow row in m_grid.SelectedRows) 
    { 
     /* Here I want to be able to access the Node object associated with this row*/ 
    } 
} 

我相信它一定是可能的,但我無法弄清楚。我可以得到行索引,然後回頭看看數組,但看起來有點哈克。

+2

細胞的類型是一個不好的名字一排 – 2011-02-23 12:22:10

+0

非常真實 - 我會編輯它。 – Nick 2011-02-23 12:26:44

回答

3

嘗試......

DataGridViewSelectedRowCollection rows = MyDataGridView.SelectedRows; 
foreach (DataGridViewRow row in rows) 
{ 
    DataRow myRow = (row.DataBoundItem as DataRowView).Row; 
    // Do something with your DataRow 
} 
+0

好的,對不起,我直接綁定到一組對象。我會更新代碼...! – Nick 2011-02-23 12:22:32

+0

輝煌 - 這就是解決方案。謝謝! – Nick 2011-02-23 12:26:08

2

從內存中,細胞會DataGridRowView:

var drv = cell as DataGridRowView; 
var row = drv.Row as MyDataRowType; 

總之,使用調試器來找到cell