C# XAML中的x:TypeArguments和泛型列表类问题

C# XAML中的x:TypeArguments和泛型列表类问题,c#,generics,xaml,.net-4.0,wpf-4.0,C#,Generics,Xaml,.net 4.0,Wpf 4.0,我为一个松散的XAML文件创建了以下标记 <StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:scg="clr-namespace:System.C

我为一个松散的XAML文件创建了以下标记

<StackPanel 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:sys="clr-namespace:System;assembly=mscorlib"
  xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib">
    <scg:List x:TypeArguments="sys:String">
        HelloWorld
    </scg:List>
</StackPanel>

你好世界
但是,当我在IE中运行松散的XAML时,我遇到了这个错误:

XML命名空间“clr命名空间:System.Collections.Generic”中不存在标记“List”;assembly=mscorlib'。行“7”位置2'

正如您所知,XAML中的泛型是XAML2009中的一个特性,并且大多数情况下只能在松散的XAML文件中工作。但是上面的代码不起作用


有没有线索说明发生此错误的原因以及如何纠正此问题?提前谢谢。

我刚刚用Internet Explorer 9测试了您的样品。IE9用于在我的系统(Windows 7 SP1 x64)上呈现内容和,通过检查实际加载的程序集,我确认它使用的是不支持XAML 2009的v3.0框架

该文档描述了XBAPs选择加载哪个框架版本,因此它显然能够使用支持XAML 2009的v4.0框架。然而,遗憾的是,文档没有说明它将为松散的XAML而不是XBAPs选择哪个版本的框架


根据经验,至少通过您的示例,我可以确认
PresentationHost.exe
选择了v3.0框架。我找不到任何方法来覆盖此选择,例如以某种方式注释XAML。

问题已经解决。我需要在标记中包含以下名称空间映射,以支持泛型的使用

xmlns:v4=”http://schemas.microsoft.com/netfx/2009/xaml/presentation"


现在一切正常。

谢谢你,瑞克,谢谢你的努力。我还是希望能找到出路,你确定吗?同样的错误:HelloWorld是的,当然。这对我有用。您必须试用您的代码并进行检查。