我有一个 List
的 GridView
,我想在每个 GridView
上添加相同的 CellEndEdit
事件。
可以确定哪个 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
}
最佳答案
标准事件模式将事件源作为参数传递给 sender
参数。所以你可以简单地将 sender
转换为 RadGridView
并拥有相关的实例:
private void radgridview_CellEndEdit(object sender, GridViewCellEventArgs e)
{
RadGridView sendingGridView = sender as RadGridView;
if (sendingGridView == null || !lst.Contains(sendingGridView))
return; // just to be sure
}
很明显,在这种情况下,sender
是一个 GridViewEditManager
,因此您可以像这样获取 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
}
关于c# - 列表的哪个 gridview 触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37881415/