Xamarin表单使用什么机制来检测内容页和内容视图的代码隐藏中的命名控件?

Xamarin表单使用什么机制来检测内容页和内容视图的代码隐藏中的命名控件?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我需要实现一个从ControlTemplate派生的控件,但它能够检测代码隐藏文件中的控件。我需要了解这在内容页/视图中是如何工作的有一个名为XamlG/UpdateDesignTimeXaml的MSBuild任务,该任务生成的分部类的视图定义为全局命名空间类级别变量,从而生成以下变量代码: private global::Xamarin.Forms.Entry someEntryControl; 然后在该文件的InitializeComponent方法中,使用FindByName扩展名通过基

我需要实现一个从ControlTemplate派生的控件,但它能够检测代码隐藏文件中的控件。我需要了解这在内容页/视图中是如何工作的

有一个名为XamlG/UpdateDesignTimeXaml的MSBuild任务,该任务生成的分部类的视图定义为全局命名空间类级别变量,从而生成以下变量代码:

private global::Xamarin.Forms.Entry someEntryControl;
然后在该文件的
InitializeComponent
方法中,使用
FindByName
扩展名通过基于字符串的变量名称查找将实际运行时实例分配给先前定义的变量:

someEntryControl = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Xamarin.Forms.Entry>(this, "someEntryControl");
someEntryControl=global::Xamarin.Forms.NameScopeExtensions.FindByName(这是“someEntryControl”);
如果您进入XAML
FindByName
代码依赖性的兔子洞,您将看到它基本上对该视图范围内的所有BindableObjects执行迭代,直到找到匹配的名称或返回
null