Я пытаюсь получить доступ к элементу управления, используя ElementName из DataTemplate, который используется в другом UserControl (ресурсы), чем определено (в xaml).
Представьте себе такую ситуацию:
MyUserControl.xaml со следующим DataTemplate в ресурсах:
<UserControl.Resources>
<DataTemplate x:Key="SomeTemplate">
<TextBlock Text="{Binding Text, ElementName=TextElement}"/>
</DataTemplate>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<TextBlock x:Name="TextElement" Text="IT WORKS! (not...)"/>
</Grid>
</UserControl>
MyUserControlWrapper.xaml
<ContentPresenter x:Name="ContentPresenter" Content="{Binding SomeContent}"/>
и в коде позади MyUserControlWrapper.xaml я установил ContentTemplate ContentPresenter из MyUserControl.xaml:
что-то вроде:
ContentPresenter.ContentTemplate = (DataTemplate)childView.Resources["SomeTemplate"];
Можно ли использовать ElementName из ресурсов, определенных вне UserControl?
Как DataTemplate ищет ElementName в том же UserControl? Может быть, возможно установить что-то вроде DataContext для самого DataTemplate, чтобы ElementName работал, не связываясь с DataContext, который отправляется элементам управления, используемым в Template?