Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中是否可以通过反射发现所有可用的数据模板?_C#_Wpf_Reflection_Datatemplate - Fatal编程技术网

在C#中是否可以通过反射发现所有可用的数据模板?

在C#中是否可以通过反射发现所有可用的数据模板?,c#,wpf,reflection,datatemplate,C#,Wpf,Reflection,Datatemplate,我希望通过反射(或一些其他方法,允许添加DataTemplates(甚至添加到新的XAML文件),而无需调整代码来发现程序集中包含的所有DataTemplates(在可能的几个XAML文件中定义) 我试过这样的方法: var allTypes = Assembly.GetEntryAssembly().GetTypes(); var allDataTemplates = allTypes.Where(t => typeof(System.Windows.DataTemplate).IsAs

我希望通过反射(或一些其他方法,允许添加
DataTemplate
s(甚至添加到新的XAML文件),而无需调整代码来发现程序集中包含的所有
DataTemplate
s(在可能的几个XAML文件中定义)

我试过这样的方法:

var allTypes = Assembly.GetEntryAssembly().GetTypes();
var allDataTemplates = allTypes.Where(t => typeof(System.Windows.DataTemplate).IsAssignableFrom(t)).ToArray();
但这并没有产生任何结果。 我想这是因为
DataTemplate
s没有存储为不同的类型


我不想手动添加每个资源字典中的所有
DataTemplate

您是否确保您的
应用程序已启动?(即,调用它的
Run
方法)@MisterMetaphor我从主窗口的构造函数调用代码。