我不知道该怎么称呼它,所以它可能已经被多次提到。
我有一个集合的包装类:public class TreeCategory<T> : IEnumerable<T>
在我的xaml中,我使用HierarchicalDataTemplate中的类,如下所示:

<HierarchicalDataTemplate x:Key="m_CategoryTemplate"
     DataType="{x:Type local:TreeCategory`1}"   <--- WHAT IS THIS?!
     ItemsSource="{Binding CategoryCollection}" >
        <TextBox Text="{Binding CategoryName}" />
    </HierarchicalDataTemplate>

所以我的问题是,当我使用local:TreeCategory构建时,构建失败,因为项目抱怨它不知道类TreeCategory是什么。但是,如果我使用:
TreeCategory`1

然后这个项目建设得很好。
什么是“1”,为什么有必要?

最佳答案

http://msdn.microsoft.com/en-us/library/system.codedom.codetypereference.basetype.aspx
泛型类型的格式为:类型的名称后跟重音符(“`”),后跟泛型类型参数的计数。
所以去掉`1你实际上是说类型是TreeCategory而不是TreeCategory<T>

07-25 20:34