2016-06-17 27 views
1

我有ListGridView,我想在每個GridView處添加相同的CellEndEdit事件。列表的哪個gridview引發事件

有可能確定哪個gridview觸發了CellEndEdit事件?

lst.Add(new RadGridView()); 
RadGridView radgridview= lst.Last(); 
radgridview.CellEndEdit += new GridViewCellEventHandler(radgridview_CellEndEdit); 

private void radgridview_CellEndEdit(object sender, GridViewCellEventArgs e) 
{ 
    //I want to know here which radgridview is modified 
} 
+0

的sender參數是引發CellEndEdit – Steve

回答

3

標準事件模式在sender參數中傳遞事件的來源作爲參數。所以,你可以簡單地投senderRadGridView,並有相關的實例:

private void radgridview_CellEndEdit(object sender, GridViewCellEventArgs e) 
{ 
    RadGridView sendingGridView = sender as RadGridView; 
    if (sendingGridView == null || !lst.Contains(sendingGridView)) 
     return; // just to be sure 
} 

顯然,在這種情況下,senderGridViewEditManager,所以你可能會得到您的RadGridView這樣的:

private void radgridview_CellEndEdit(object sender, GridViewCellEventArgs e) 
{ 
    GridViewEditManager manager = sender as GridViewEditManager; 
    RadGridView sendingGridView = manager?.GridViewElement?.GridControl; 

    if (sendingGridView == null || !lst.Contains(sendingGridView)) 
     return; // just to be sure 
} 
+0

的RadGridView,這是我已經嘗試但發送的GridView爲空... – llwynrt

+0

您可以調試並找出什麼'發送者'真實是嗎?也許它是單元格,你可以從中獲取gridview。 –

+0

sender is GridViewEditManager – llwynrt