У меня есть Silverlight UserControl, который использует ContentPropertyAttribute для предоставления свойства Children одной из его дочерних панелей. Это позволяет мне добавлять дочерние элементы управления на панель на моей странице:
<local:MyUserControl>
<TextBox Name="tbTest" />
</local:MyUserControl>
Это работает, кроме поля tbTest на странице, которое присутствует, но не инициализировано. При ближайшем рассмотрении метод InitializeComponent пытается найти TextBox (с FindName), но не может этого сделать (возвращается null).
После некоторого расследования я обнаружил, что проблема в области видимости имен - у UserControl есть собственная область видимости имен, поэтому дочерние элементы не могут быть обнаружены с помощью FindName страницы, но могут быть обнаружены с помощью метода FindName UserControl.
Как я могу изменить свой UserControl, чтобы дочерние элементы управления можно было найти с помощью метода InitializeComponent? Стандартные панели (StackPanel, Grid и т. Д.), Похоже, не имеют при этом никаких проблем, так что должно быть решение?
Спасибо