11

これら2つのステートメントの違いは何ですか? 特に、どちらがより最適化されているかに興味があります。

GridViewRow currentItem = (GridViewRow)drp_Vendor.Parent;

GridViewRow currentItem = (GridViewRow)drp_Vendor.NamingContainer;
4

1 に答える 1

14

基本的な違いはNamingContainer、ネーミング コンテナーである祖先が見つかるまでコントロール ツリーを上に移動することです ( INamingContainerインターフェイスを実装Parentし、コントロール ツリーの直接の親を返します。

あなたの場合、GridViewRow は、drp_Vendor コントロールの直接の親と名前付けコンテナーの両方のように見えます。

ただし、たとえば、drp_Vendor コントロールを の 内に配置するPanelTemplateField、Parent は Panel になり、NamingContainer は GridViewRow になります。

どちらが「最も最適化されている」かについては、Parentプロパティはわずかに高速になりますが、違いはわずかです。

于 2013-05-23T08:31:36.853 に答える