我有一个使用ContentPropertyAttribute的Silverlight UserControl,用于公开其子面板中Children属性。这使我能够向页面上的面板添加子控件:
<local:MyUserControl>
<TextBox Name="tbTest" />
</local:MyUserControl>
除了页面上的'tbTest'字段存在但未初始化之外,此方法有效。经过仔细检查,InitializeComponent方法确实尝试使用FindName查找TextBox,但无法找到(返回null)。
经过一些调查,我发现命名范围是问题所在 - UserControl有自己的命名范围,因此它的子项无法使用页面的FindName进行定位,但可以使用UserControl的FindName方法进行定位。
如何更改UserControl,以便InitializeComponent方法可以定位子控件?标准面板(StackPanel、Grid等)似乎没有任何问题,因此必须有解决方案?
谢谢