这两个语句之间有什么区别?我尤其对哪一种更优化感兴趣。
GridViewRow currentItem = (GridViewRow)drp_Vendor.Parent;
和
GridViewRow currentItem = (GridViewRow)drp_Vendor.NamingContainer;
最佳答案
基本区别是NamingContainer
将在控制树中导航,直到找到作为命名容器的祖先(实现INamingContainer接口,而Parent
将返回控制树中的直接父级。
在您的情况下,GridViewRow似乎是drp_Vendor控件的直接父级和命名容器。
但是,例如,如果将drp_Vendor控件放在Panel
中的TemplateField
内,则父级将是面板,而NamingContainer将是GridViewRow。
至于哪一个是“最优化的”,Parent
属性将稍微快一些,但差异不明显。