如何在xaml中使用List <T>?

Toa*_*ums 4 c# wpf xaml objectdataprovider

所以我很确定在定义部分我需要包含以下内容:

xmlns:s="clr-namespace:System.Collections.Generic;assembly=?????" 
Run Code Online (Sandbox Code Playgroud)

但我只是不知道该怎样替代???的.

我想用代码做的是:

<UserControl.DataContext>
    <ObjectDataProvider 
          MethodName="CreateNodes"
          ObjectType="{x:Type local:TreeViewModel}" >
        <ObjectDataProvider.MethodParameters>
            <s:List<T>>
                  {Binding Nodes}
            </s:List<T>>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)

因此,当我进行objectDataProvider调用时,我可以将列表传递给它调用的方法(CreateNodes)...

我该怎么做呢?

谢谢!

编辑 - 可能是一个修复?

我只是把它放在方法中,而不是传递给列表,它只是一个app变量...我不知道app变量是不是很糟糕

  List<TNode> existingNodes;

  if (Application.Current.Properties.Contains("ExistingNodes")) existingNodes = Application.Current.Properties["ExistingNodes"] as List<TNode>;
  else existingNodes = new List<TNode>();
Run Code Online (Sandbox Code Playgroud)

Tho*_*que 5

assemblyXML命名空间声明的一部分是mscorlib.

但无论如何,XAML不支持泛型(*),所以你不能这样做.相反,您可以创建一个List<T>在XAML 中继承并使用它的类:

class ListOfFoo : List<Foo>
{
}
Run Code Online (Sandbox Code Playgroud)

(1)其实仿制药在2009年XAML支持,但2009年大部分时间XAML的编译XAML不支持.有关更多信息,请参阅此问题.