XAML数据类型中的神秘`1

mwj*_*son 6 c# generics wpf xaml

我不知道该怎么称呼它,所以它可能已经被多次解决了.

我有一个集合的包装类: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>
Run Code Online (Sandbox Code Playgroud)

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

TreeCategory`1
Run Code Online (Sandbox Code Playgroud)

那么项目建设很好.

什么是`1,为什么有必要?

Ed *_*d W 7

http://msdn.microsoft.com/en-us/library/system.codedom.codetypereference.basetype.aspx

通用类型的格式为类型名称,后跟重音符号("`"),后跟泛型类型参数的计数.

所以通过删除`1你实际上说的类型是TreeCategory和不TreeCategory<T>