Да, Silverligt 4 старше текущей версии WPF.
Когда вы добавляете шаблон как ресурс, т.е. как я
Я добавил шаблон userControl в Application.xaml MergedResources между ResourceDictionary.
В XAML, если тег реализует IDictionary, вы можете использовать атрибут x: Key. Вот так
<ResourceDictionary>
<DataTemplate x:Key="TextBoxEditTemplate">
<Some user control x:Name="myOwnControl" />
</DataTemplate>
</ResourceDictionary>
Ok! Вы можете получить доступ к своему шаблону, кодировав его, Application.Current.resources ["TextBoxEditTemplate"]
с другой стороны, некоторые методы поиска членов этого шаблона не будут работать. Кроме этого DataTemplate не реализует IDictionary, поэтому вы не можете назначить атрибут x: Key для элементов в этом dataTemplate. как myOwnControl в примере.
Без xaml у текущего silverlight есть некоторые ограничения на создание полностью динамического кода позади DataTemplates. Даже он работает на WPF.
В любом случае, лучшим решением на данный момент является создание XAML-скрипта для datatemplate. Вы можете использовать некоторый элемент значений в скрипте DataTemplate. Мы создали наши собственные usercontrols имеет некоторые свойства с DependencyObjectProperty ...
Наконец, если ваш объект не имеет наследников, т.е. не MyControl: UserControl, который вы можете унаследовать MyObject: DependencyObject , таким образом, вы можете достичь своего объекта, вызывая как Application.Current.Resources.FirstChilderen ...
FindName работает только в WPF