在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我从主窗口的构造函数调用代码。