gpt4 book ai didi

c# - 如何在 xaml 中使用 List

转载 作者:太空狗 更新时间:2023-10-30 01:09:18 26 4
gpt4 key购买 nike

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

xmlns:s="clr-namespace:System.Collections.Generic;assembly=?????" 

但我只是不知道用什么来代替 ???。

我想用代码做的是:

<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>

这样当我调用 objectDataProvider 时,我可以将列表传递给它正在调用的方法 (CreateNodes)...

我该怎么做?

谢谢!

编辑 - 可能是一种修复方法?

我只是把它放在方法中,而不是传入列表,它只是一个应用程序变量......我不知道应用程序变量是否不好

  List<TNode> existingNodes;

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

最佳答案

assembly XML 命名空间声明的一部分将是 mscorlib .

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

class ListOfFoo : List<Foo>
{
}

(1) 实际上,XAML 2009 中支持泛型,但已编译的 XAML 不支持大部分 XAML 2009。参见 this question获取更多信息。

关于c# - 如何在 xaml 中使用 List<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7152196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com