Кажется, что ключ x: является объектом типа System.Windows.DataTemplateKey
. Таким образом, вы можете «создать» ключ для своего ресурса с помощью new DataTemplateKey(typeof(myType))
. FindResource
будет работать с этим ключом, поскольку TemplateKey.Equals
было переопределено.
Вот очень простой пример приложения:
XAML:
<Window ...>
<Window.Resources>
<DataTemplate DataType="{x:Type TextBlock}">
</DataTemplate>
</Window.Resources>
<Button Click="Button_Click">Test</Button>
</Window>
Codebehind:
//using ...
namespace WpfCsApplication1 {
public partial class Window1 : Window {
public Window1() {
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e) {
var key = new System.Windows.DataTemplateKey(typeof(TextBlock));
var r = (DataTemplate)this.FindResource(key);
MessageBox.Show(r.ToString()); // to show that it worked
}
}
}