0

我有一个名为“item”的对象,女巫从 XAML 传递给方法

这是我在断点上得到的:

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); }
}

有什么建议么?

4

2 回答 2

1

您能否尝试查看 AppDomain.CurrentDomain.GetAssemblies() 中是否有多个“Playground”程序集实例?

如果您通过 dll 引用(您通过“添加引用”对话框中的“浏览”选择)而不是项目引用从另一个项目引用此程序集,则可能会发生这种情况。

换句话说:当您引用同一程序集的两个不同版本时,会发生这种奇怪的事情。

[编辑] 如果是这样,它与 xaml 无关

于 2013-10-29T12:10:30.323 回答
1

根据您上次的编辑:

如果 "item" 是 "System.Type" 而不是它的实例,则使用:

   if(item == typeof(City))
于 2013-10-29T12:37:23.433 回答