我有一个名为“item”的对象女巫从XAML传递给方法
这就是我对breakpint的看法:
base {System.Reflection.TypeInfo} = Name =“Country”Full / Name = “Playground.Domain.Country”}
我试图找到如何通过
找到哪个“类型”是项目public class EditorTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item,
DependencyObject container)
{
DataTemplate template = null;
var templateName = "NotFoundEditor";
if (item != null)
{
FrameworkElement element = container as FrameworkElement;
if (element != null)
{
if (item is City)
templateName = "CityEditor";
else if (item is Country)
templateName = "CountryEditor";
template = element.FindResource(templateName) as DataTemplate;
}
}
return template;
}
但没有运气。
object item
从
public Type ModelType
{
get { return typeof(T); }
}
有什么建议吗?
答案 0 :(得分:1)
您是否可以尝试在AppDomain.CurrentDomain.GetAssemblies()中查看是否有多个“Playground”程序集实例?
如果您通过dll引用(通过“添加引用”对话框中的“浏览”选择)从另一个项目引用此程序集,而不是项目引用,则可能会发生这种情况。
换句话说:当您引用同一个程序集的两个不同版本时,会发生这种奇怪的事情。
[edit]如果是这样的话,它与xaml
无关答案 1 :(得分:1)
根据您的上一次编辑:
如果“item”是“System.Type”而不是它的实例,则使用:
if(item == typeof(City))