我需要实现一个从ControlTemplate派生的控件,但它具有检测隐藏在代码文件中的控件的能力。我需要了解这在内容页/视图中是如何工作的
发布于 2019-05-16 03:03:03
有一个名为XamlG/UpdateDesignTimeXaml的MSBuild任务,它生成一个分部类,其中包含您将x:Name
定义为全局名称空间类级别变量的视图,并因此生成以下变量代码:
private global::Xamarin.Forms.Entry someEntryControl;
然后,在该文件的InitializeComponent
方法中,使用FindByName
扩展将实际的运行时实例分配给前面定义的变量,方法是根据变量的名称进行基于字符串的查找:
someEntryControl = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Xamarin.Forms.Entry>(this, "someEntryControl");
如果您深入研究XAML FindByName
代码依赖项,您将看到它基本上对该视图范围内的所有BindableObjects执行迭代,直到找到匹配的名称或返回null
。
https://stackoverflow.com/questions/56154048
复制相似问题